假设 eax=1
LEA eax [eax+eax*4] 结果为什么是 eax=5呢?
[eax+eax*4] 为直接寻址方式,操作数的地址有DS加上指令中给出的偏移得到。在这里,偏移为:eax+eax*4;
LEA指令的功能是将源操作数、即存储单元的有效地址(偏移地址)传送到目的操作数。
在这里就相当于将偏移值:eax+eax*4赋给eax了。如果用mv,那就是将ds:(eax+eax*4)=ds+5 处的值给eax。
假设 eax=1
LEA eax [eax+eax*4] 结果为什么是 eax=5呢?
[eax+eax*4] 为直接寻址方式,操作数的地址有DS加上指令中给出的偏移得到。在这里,偏移为:eax+eax*4;
LEA指令的功能是将源操作数、即存储单元的有效地址(偏移地址)传送到目的操作数。
在这里就相当于将偏移值:eax+eax*4赋给eax了。如果用mv,那就是将ds:(eax+eax*4)=ds+5 处的值给eax。