lea 指令的小解
的功能是将源操作数、即存储单元的有效地址(偏移地址)传送到目的操作数。
官方8086的白皮书,我的英语水平有限,只找到如下内容;
- ^offset和 Lea 伪指令 ;
offset 此为一个伪指令,它不会有机器代码,告诉编译器,这里放到的这里的szMsg不是值,而是一个地址;
^ lea
^lea 为硬编码,会产生机器指令的,在产生机器指令时,在机器周期运行操作中,才去更换提取偏移地址;
而offset 是在编译前已经取到了偏译地址;
lea ax,szMsg ; =lea dx,[0002] mov dx,offset szMsg ; mov dx, 0002