Ton*_*ion 32 x86 assembly instructions
关于这个LEAL指令,0x10的功能是什么?它是一个乘法或加法还是别的?
leal 0x10(%ebx), %eax
Run Code Online (Sandbox Code Playgroud)
有人可以澄清一下吗?这是Linux机器上的x86汇编程序.
Nil*_*nck 71
leal,或lea全名是"加载有效地址",它正是这样做的:它进行地址计算.
在您的示例中,地址计算非常简单,因为它只是向ebx添加了一个偏移量并将结果存储在eax中:
eax = ebx + 0x10
lea可以做更多.它可以添加寄存器,将寄存器与常数2,4和8相乘,用于字,整数和双精度的地址计算.它还可以添加偏移量.
请注意,lea的特殊之处在于它永远不会修改标志,即使您将其用作上述示例中的简单添加项.编译器有时会利用此功能并用lea替换添加以帮助调度程序.由于这个原因,在编译代码中看到lea指令执行简单算术并不罕见.
| 归档时间: |
|
| 查看次数: |
43176 次 |
| 最近记录: |