2012-02-06 59 views
1

我试图让86对LEA指令良好的抓地力:86 lea指令

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

鉴于这两条线,我知道:

eax = edx + edx*4

然后

eax = edx + edx*2

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

+2

可能重复http://stackoverflow.com/questions/9153282/lea-assembly在EDX值 - 指令) – Grizzly 2012-02-06 00:25:09

+1

如何下载英特尔(AMD)CPU手册并阅读它们? – 2012-02-06 02:05:22

+0

你也可以通过http://www.agner.org/optimize/ – Gigi 2012-02-06 02:17:00

回答

2

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

是(这是两个指令后覆盖)

以及究竟会被加载到寄存器?另一个地址?

通过EDX +描述的存储器地址的偏移量存储作为乘以2

[LEA汇编指令(的