我在理解以下汇编代码时遇到问题。如果你能给我一个例子,里面有数字,这在幕后是什么样子的,那就太好了。
movl $0, %ecx
movl $0, %eax
addl $1, %eax
movl %eax, %edx
sarl $31, %edx
idivl $7
movl %edx, %eax
movl (%esp, %eax, 4), %eax
movl %eax, (%esp, %ecx, 4)
我想我可能会误解 sarl 和 idivl 因为我的结果没有意义..
非常感谢你的帮助!!我已经在那个代码前面坐了 3 个小时了^^
我认为:
ecx = 0
eax = 0
eax = 0 + 1 = 1
edx = eax = 1
现在移动 edx => edx = 0
现在 edx:eax 除以 7?
为什么我不能只设置 edx = 0 并将 sarl 排除在外?那不一样吗?