8086汇编语言指令(3)取有效地址指令LEA

取有效地址指令LEA(Load Effective Address)

指令LEA是把一个内存变量的有效地址送给指定的寄存器。其指令格式如下:

LEA Reg, Mem

该指令通常用来对指针或变址寄存器BXDISI等置初值之用


 

LEA OFFSET 的比较

 

一般来说,

mov reg,offset xxx  lea regxxx 的指令长度少一个字节,且快一个时钟,

因此,应优先选用 mov offset 指令,

lea的优势真正体现在这个方面:

计算两个寄存器的和并放入另一个寄存器中

比如

lea ax,[bx+di+100]

mov ax,bx

add ax,di

add ax,100

高效得多

 

lea可以用基址、变址...寻址,offset则只能用mem,offset是由汇编程序实现,而lea是在程序运行时由指令实现,所以在程序中才可得到的地址时只能用lea,如果在汇编时可得到地址则用offset,毕竟指令短,又是由汇编程序操作,程序执行时可直接使用得到的地址

>

都说得不对啊。

lea是真正的汇编指令,它对应于一个机器码,而offset只是一个给汇编程序的关键字,它要求汇编程序在汇编时算出相应的地址偏移,也就是说它对应的操作数必须是一个汇编程序知道的变量或者标量!而lea却可以算出任何形式的地址偏移!这才是它们真正的区别哟。

 

=>offset的确不是指令,mov offset汇编前会被替换成真正的mov












请使用浏览器的分享功能分享到微信等