x86 lea指令

我试图抓住x86中的LEA指令:

leal (%edx, %edx, 4), %eax
leal (%edx, %edx, 2), %eax

鉴于这两条线,我知道:

eax = edx + edx*4

接着

eax = edx + edx*2

两个问题。 首先,如果这些指令按照本例中的顺序出现,那么一旦第二行执行,eax寄存器就会被覆盖? 什么会被加载到寄存器中? 另一个地址? 或者这是对这些寄存器指向的值进行算术运算?


如果这些指令按照本例中的顺序出现,那么一旦第二行执行,eax寄存器将被覆盖?

是的(在两条指令后都被覆盖)

什么会被加载到寄存器中? 另一个地址?

EDX描述的存储器地址+ EDX中存储的偏移量乘以2

链接地址: http://www.djcxy.com/p/72385.html

上一篇: x86 lea instruction

下一篇: Using LEA on values that aren't addresses / pointers?