單片機(jī)編程入門(mén)基礎(chǔ)知識(shí) 在匯編語(yǔ)言的串操作中,MOV DI, DS MOV ES, DI這兩條指令到底有什么作用?
在匯編語(yǔ)言的串操作中,MOV DI, DS MOV ES, DI這兩條指令到底有什么作用?(1)沒(méi)有上下文,你無(wú)法判斷這兩個(gè)指令的實(shí)際含義。你看不到任何與字符串操作的直接關(guān)系。在字符串操作中,通常將兩
在匯編語(yǔ)言的串操作中,MOV DI, DS MOV ES, DI這兩條指令到底有什么作用?
(1)沒(méi)有上下文,你無(wú)法判斷這兩個(gè)指令的實(shí)際含義。你看不到任何與字符串操作的直接關(guān)系。在字符串操作中,通常將兩個(gè)字符串分別放在由ds:Si和es:Di尋址的存儲(chǔ)器單元中,以便于字符串比較、移動(dòng)和其他操作。
(2)MOV,Si,DS指令的意義是將數(shù)據(jù)段寄存器的段地址值賦給Si,執(zhí)行后:Si=DS
(3)MOV,Di,ES指令的意義是將擴(kuò)展數(shù)據(jù)段寄存器的段地址值賦給Di。也就是說(shuō),在執(zhí)行之后,di=es
一般來(lái)說(shuō),這種指令很少在程序中使用。如果要保護(hù)DS和ES的值,通常使用push-DS和push-ES指令。如果要計(jì)算物理地址,還需要將段地址放入ax寄存器。當(dāng)然,8086CPU給出了這樣的指令。在某些情況下,可以使用您提到的兩個(gè)說(shuō)明。
x86匯編語(yǔ)言的MOV指令?
Mov是匯編語(yǔ)言中的數(shù)據(jù)傳輸指令。
用法如下:
mov move(操作碼:88、89、8a、8b、8C、8e…)
mov指令將第二個(gè)操作數(shù)(可以是寄存器的內(nèi)容、內(nèi)存中的內(nèi)容或值)復(fù)制到第一個(gè)操作數(shù)(寄存器或內(nèi)存)。Mov不能用于直接從內(nèi)存復(fù)制到內(nèi)存。其語(yǔ)法如下:
mov
mov
mov
示例
mov eax,ebx-將ebx的值復(fù)制到eax
mov byte PTR[var],5-將5保存到var指示的內(nèi)存中的一個(gè)字節(jié)