offset与lea
offset是操作符(或说伪指令);lea是硬指令,其操作数必须为内存操作数;offset在编译阶段得出偏移地址;lea在程序执行的时候才去的偏移地址;
offset经过编译后,得到的是操作数是一个数值。从速度上来说,要比lea来得快! 但是,从复杂度和灵活性来说,lea则远远超过offset。
下面的指令是非法的:
MOV AX,OFFSET [BX+200]
因为人BX+200的值在编译的时候无法确定。但可以用lea语句来代替:
LEA AX,[BX+200]
也等价于:
ADD BX, 200
MOV AX, BX
参考:http://topic.youkuaiyun.com/u/20101220/22/6af951db-a38b-4f48-8f0a-d122a1a6ea0e.html
本文详细解释了offset与lea的区别,包括它们在编译和执行阶段的作用,以及如何使用它们来获取内存操作数的偏移地址。通过对比,展示了lea指令在复杂度和灵活性上的优势。
1435

被折叠的 条评论
为什么被折叠?



