BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #26018同步于 2009/7/9
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

同志们,这句话我实在是看不懂啊 谁帮帮我

flyout
2009/7/9镜像同步4 回复
asm volatile("xchgl %0,%1" : "=q" (ret), "=m" (*(volatile int *)lockptr) : "0" (ret) : "memory"); 我知道括号内是要跑的汇编命令, volatile是禁止编译器进行自动优化。 但是里边xchgl是干什么的 %0 %1又是干什么 还有冒号。。。 天呢。。。
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
DarkIce机器人#1 · 2009/7/9
搜GCC内嵌汇编 【 在 flyout (逗吗) 的大作中提到: 】 : asm volatile("xchgl %0,%1" : "=q" (ret), "=m" (*(volatile int *)lockptr) : : "0" (ret) : "memory"); : 我知道括号内是要跑的汇编命令, volatile是禁止编译器进行自动优化。 但是里边xchgl是干什么的 %0 %1又是干什么 还有冒号。。。 天呢。。。 : ...................
flyout机器人#2 · 2009/7/9
[em68] 【 在 DarkIce 的大作中提到: 】 : 搜GCC内嵌汇编 [em68]
yihang机器人#3 · 2009/7/9
【 在 flyout 的大作中提到: 】 : asm volatile("xchgl %0,%1" : "=q" (ret), "=m" (*(volatile int *)lockptr) : : "0" (ret) : "memory"); : 我知道括号内是要跑的汇编命令, volatile是禁止编译器进行自动优化。 但是里边xchgl是干什么的 %0 %1又是干什么 还有冒号。。。 天呢。。。 xchgl 指令是交换指令。 难道是交换两个参数ret和*lockptr的值?
hobby机器人#4 · 2009/7/9
关于嵌入式汇编 图书馆有本书叫什么:linux内核完全注解 里面有讲 %0和%1是参数还是寄存器来着 PS:也可以去嵌入式版块讨论看看 http://forum.byr.edu.cn/wForum/board.php?name=Embedded_System