匯編語(yǔ)言lea指令什么意思 匯編語(yǔ)言中LEA指令和MOV指令的區(qū)別是什么?
匯編語(yǔ)言中LEA指令和MOV指令的區(qū)別是什么?1. lea指令的功能是獲取偏移地址,例如lea ax,[1000h],用于將源操作數(shù)[1000h]的偏移地址1000h發(fā)送到ax。2. MOV指令的功能
匯編語(yǔ)言中LEA指令和MOV指令的區(qū)別是什么?
1. lea指令的功能是獲取偏移地址,例如lea ax,[1000h],用于將源操作數(shù)[1000h]的偏移地址1000h發(fā)送到ax。
2. MOV指令的功能是傳輸數(shù)據(jù),例如MOV ax,[1000h]。MOV指令的功能是以1000h作為偏移地址,尋址并找到存儲(chǔ)單元,將存儲(chǔ)單元中的數(shù)據(jù)發(fā)送給ax。
匯編語(yǔ)言lea是什么意思?
MOV指令的功能是傳輸數(shù)據(jù),如movax,[1000h],用于尋址和查找存儲(chǔ)單元,并將存儲(chǔ)單元中的數(shù)據(jù)發(fā)送到ax;lea指令的功能是取偏移地址,如leaax,[1000h],用于將源操作數(shù)[1000h]的偏移地址1000h發(fā)送到ax。理解時(shí)可以直接刪除[],相當(dāng)于movax,1000h,再如:leabx,[ax]相當(dāng)于movbx,ax;leabx,table相當(dāng)于movbx,offset table。但有時(shí)mov不能直接用來(lái)代替:例如leaax,[si6]不能直接用movax,si6代替;但可以用movax,siaddax,6代替。
匯編lea指令有啥用?
實(shí)際上,所有者知道這兩個(gè)指令之間的區(qū)別,但認(rèn)為使用lea指令是沒(méi)有必要的。事實(shí)并非如此。當(dāng)源操作數(shù)非常簡(jiǎn)單時(shí),MOV指令可以用來(lái)代替lea指令,如lea ESI、buffer、MOV ESI和offset buffer。但當(dāng)源操作數(shù)稍微復(fù)雜一點(diǎn)時(shí),單用MOV指令不能代替lea指令,至少需要算術(shù)指令。指令集中提供了Lea指令,減少了計(jì)算量。為減輕人們的勞動(dòng)強(qiáng)度,提高工作效率而制造的設(shè)備和工具。就像,你可以用原來(lái)的鐵鍋和柴火做飯做飯,也可以用煤氣爐和電飯鍋?zhàn)鲲堊鲲?。你想用哪一種?