我试图很好地掌握 x86 中的 LEA 指令:
leal (%edx, %edx, 4), %eax
leal (%edx, %edx, 2), %eax
鉴于这两行,我知道:
eax = edx + edx*4
进而
eax = edx + edx*2
两个问题。首先,如果这些指令像本例中那样按顺序出现,那么一旦执行第二行,eax 寄存器就会被覆盖?究竟什么会被加载到寄存器中?另一个地址?或者这是对这些寄存器指向的值进行算术运算?
我试图很好地掌握 x86 中的 LEA 指令:
leal (%edx, %edx, 4), %eax
leal (%edx, %edx, 2), %eax
鉴于这两行,我知道:
eax = edx + edx*4
进而
eax = edx + edx*2
两个问题。首先,如果这些指令像本例中那样按顺序出现,那么一旦执行第二行,eax 寄存器就会被覆盖?究竟什么会被加载到寄存器中?另一个地址?或者这是对这些寄存器指向的值进行算术运算?