LEA AX,[BX+SI] 和MOV AX,OFFSET [BX+SI]的区别
2013-09-10 13:04
323 查看
"想要"实现的都是取偏移地址,就是OFFSET是伪指令,编译时完成,LEA是指令,CPU运行时完成取偏移地址。
PS
:LEA与OFFSET区别:
1、LEA是汇编指令,对应一个机器码,OFFSET是伪指令,没有专门的机器码;
2、LEA可以使用各种存储器寻址方式,OFFSET只能回送变量或标号的偏移地址;
3、LEA在运行时才能确定操作数的地址,OFFSET在编译时由汇编程序计算出操作数的地址并作为立即数回送给指令(也就是把立即数放入编译出的机器指令中);
4、LEA用来确定局部变量的地址,OFFSET用来确定全局变量的地址,因为全局变量的地址在汇编时就已经确定,而局部变量地址受运行环境的影响,是不确定的,只能在程序运行时计算得出。从上面的结论可以看出后者,就是MOV AX,OFFSET [BX+SI]是错误的.
PS
:LEA与OFFSET区别:
1、LEA是汇编指令,对应一个机器码,OFFSET是伪指令,没有专门的机器码;
2、LEA可以使用各种存储器寻址方式,OFFSET只能回送变量或标号的偏移地址;
3、LEA在运行时才能确定操作数的地址,OFFSET在编译时由汇编程序计算出操作数的地址并作为立即数回送给指令(也就是把立即数放入编译出的机器指令中);
4、LEA用来确定局部变量的地址,OFFSET用来确定全局变量的地址,因为全局变量的地址在汇编时就已经确定,而局部变量地址受运行环境的影响,是不确定的,只能在程序运行时计算得出。从上面的结论可以看出后者,就是MOV AX,OFFSET [BX+SI]是错误的.
相关文章推荐
- mov offset和lea的区别
- lea和offset的区别
- 汇编里面关于lea与mov的区别
- 汇编语言中PTR的含义及作用以及Mov和lea的区别
- MOV AX ,OFFSET[DI+10H]的错误
- ①mov ax,1 ②mov ds,ax ③mov bx,[0] 通过上面这些语句,为什么ds=0000?
- 汇编语言LEA和OFFSET区别
- 汇编指令1--lea和mov的区别
- 汇编 AX, BX, CX, DX, SI, DI,
- 汇编中中括号[]作用以及lea和mov指令的区别
- mov 和 lea 的区别
- 比较汇编指令 LEA 和 MOV
- jQuery方法position()与offset()区别
- offsetLeft,Left,clientLeft的区别
- offsetLeft和style.left的区别
- contentsiz contentoffset contentInset的区别
- AX,BX,CX,DX 寄存器
- arm指令中mov和ldr有什么区别
- 比较汇编指令 LEA 和 MOV(转载)
- JS中关于clientWidth offsetWidth scrollWidth 等的区别