我试图抓住x86中的LEA指令:
leal (%edx, %edx, 4), %eax
leal (%edx, %edx, 2), %eax
鉴于这两行,我知道:
eax = edx + edx*4
然后
eax = edx + edx*2
两个问题。首先,如果这些指令按照本例中的顺序出现,那么一旦执行第二行,eax寄存器就会被覆盖?究竟会加载到寄存器中的是什么?另一个地址?或者这是对这些寄存器指向的值进行算术运算?
答案 0 :(得分:2)
如果这些指令按照本例中的顺序出现,则为eax 第二行执行后,寄存器会被覆盖吗?
是(在两条指令后都被覆盖)
究竟会加载到寄存器中的是什么?另一个地址?
EDX描述的存储器地址+作为EDX中的值存储的偏移量乘以2