汇编里面关于lea与mov的区别

来源:百度知道 编辑:UC知道 时间:2024/06/23 04:58:16
我在网上搜索了一下,实在看不懂他们讲的,我纯菜鸟,希望有高手能讲得简单点

我晕,小勺勺儿的回答怎么有点不通。。。
lea SI,D1
是把D1的地址放入SI寄存器中。
所以SI中的值会变的,变成的是D1的地址。而D1则是用户定义的一个内存数据的助记符。
如果是mov SI,D1就会把D1的值放进SI。
例如,D1 dw 0x0000
汇编以后可能变成:
地址 值
0x9000 00
0x9001 00
那么lea SI,D1,SI的值是0x9000而不是0000,要用mov就是0000了

mov的指令类型是通用数据传送,传送的是数据
lea的指令类型是目的地址传送,传送的是地址

lea是取有效地址,比如lea SI,D1是把数据D1放到SI的地址中去,此时SI本身的值不变,只是其中的内容变为D1,只有SI,DI和BX可以使用lea指令,而mov是转移指令,mov AX,BX是把BX中的数据存放到AX中,此时AX的值变为BX的值,
而mov SI,offset D1与lea SI,D1是等效的