我想知道这些指令之间的区别是什么:
MOV AX, [TABLE-ADDR]
和
LEA AX, [TABLE-ADDR]
LEA
MOV
简而言之,LEA加载指向您正在寻址的项目的指针,而 MOV 在该地址加载实际值。
的目的LEA是允许一个人执行一个非平凡的地址计算并存储结果[供以后使用]
LEA ax, [BP+SI+5] ; Compute address of value MOV ax, [BP+SI+5] ; Load value at that address
在只涉及常量MOV的情况下,(通过汇编程序的常量计算)有时会出现与LEA. 如果您有多个基地址等的多部分计算,它很有用。