汇编里面lea和offset有什么区别?

如题所述

一、指代不同

1、lea:是微机8086/8088系列的一条指令,取有效地址,也就是取偏移地址。

2、offset:变量名或标号,汇编程序将回送变量或标号的偏移地址。

二、规则不同

1、lea:在微机8086/8088中有20位物理地址,由16位段基址向左偏移4位再与偏移地址之和得到。

2、offset:Reference 作为偏移量参照系的引用区域。Reference 必须为对单元格或相连单元格区域的引用;否则,函数 OFFSET 返回错误值#VALUE!。


三、用法不同

1、lea:用于把源操作数的地址偏移量传送目的操作数。源操作数一定要是一个存贮器操作数,而召的操作数可以是任何的16位的通用寄存器,包括指针寄存器/变址寄存器。

2、offset:OFFSET(reference,rows,cols,height,width),Cols 相对于偏移量参照系的左上角单元格,左(右)偏移的列数。


参考资料来源:百度百科-Offset

参考资料来源:百度百科-lea

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-09
要说有区别 也有
offset是伪指令;lea是硬指令;offset在编译阶段得出偏移地址;lea在程序执行的时候才去的偏移地址;
从速度上来说,要比lea来得快! 但是,从复杂度和灵活性来说,lea则远远超过offset追问

那么通常什么时候要用offset,什么时候用lea呢?

追答

这二个指令的作用是一样的 就是运算周期不同 就是说消耗的内存不同尔以

本回答被提问者采纳
相似回答