AT&T汇编的一个语法问题
movl $sem->count,%ecx
incl (%ecx)
$sem->count应该是一个立即数,也就是某个结构体的成员变量count的值,这里应该是把sem->count加1,那么incl中不应该有括号呀,有了括号那就应该是把以sem->count为地址的值加1了呀?请问原因是什么?
[解决办法]
第一条汇编语句,可能是取count的偏移。第二条表示操作数的间接寻址,把count加1。可能是因为内联汇编,看起来不像纯汇编那样把吧
[解决办法]
第一句, 这里%ecx里面存的是地址 A,意思是将地址+count个,变成地址B
第二句, 将地址B所指向的内存单元里面的数+1吧