一段汇编不懂,请指教。。
第3行,imull为啥有2个操作数?书上说只有一个啊,S x (%eax)然后高位存在%edx 低位存在%eax第3行执行后,%eax的值应该是乘积的低32位, 不再是x了。为啥第4行,mull 16(%ebp) 直接乘了呢?
刚接触汇编,不是很懂请指教{:3_185:}
书没看仔细。 32位机:
单操作数, 其中一个存放 %eax, 结果位于 %edx, %eax
mull S => 无符号全64位乘法
imull S => 有符号全64位乘法
双操作数,两个32位操作数产生一个32位乘积:
imul S, D=> D = D * S
其它的应该就可以看懂了。 不同的系统上指令不同也没必要纠结,这个语法本来就差异很大 本帖最后由 djsxut 于 2013-08-02 22:06 编辑
这个看起来就是linux x86 32位的。。。并且题目的风格很像《深入理解计算机系统》里题目的风格。
页:
[1]