資源描述:
《微機(jī)原理與接口技術(shù)(樓順天)-第3章9.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、本教案內(nèi)容第3章8086CPU指令系統(tǒng)匯編語(yǔ)言指令8086指令分類數(shù)據(jù)與轉(zhuǎn)移地址的尋址方式數(shù)據(jù)傳送類指令算術(shù)運(yùn)算類指令邏輯運(yùn)算類指令移位類指令標(biāo)志位操作指令轉(zhuǎn)移指令循環(huán)控制指令子程序調(diào)用返回指令中斷調(diào)用返回指令字符串操作指令I(lǐng)/O輸入輸出指令其它指令宏指令所謂字符串是指一組代碼或數(shù)據(jù),并不一定是常規(guī)的由字符構(gòu)成的。字符串操作指令就是對(duì)這組代碼或數(shù)據(jù)進(jìn)行相同功能處理的指令。字符串存放在一個(gè)連續(xù)的存儲(chǔ)區(qū)域中。3.13字符串操作指令3.13字符串操作指令8086系統(tǒng)提供了5類字符串操作指令:字符串傳送M
2、OVS(Movebyteorwordstring)字符串比較CMPS(Comparebyteorwordstring)字符串掃描SCAS(Scanbyteorwordstring)字符串裝入LODS(Loadbyteorwordstring)字符串存儲(chǔ)STOS(Storebyteorwordstring)3.13字符串操作指令由于這類指令要對(duì)一組代碼進(jìn)行操作,希望能夠成批處理數(shù)據(jù),這需要字符串指令與重復(fù)前綴配合使用。重復(fù)前綴REP(Repeatstringoperation)重復(fù)前綴REPZ/RE
3、PE(Repeatstringoperationwhileequal/zero)重復(fù)前綴REPNZ/REPNE(Repeatstringoperationwhilenotequal/notzero)?字符串處理指令既可以按字節(jié)操作,也可以按字操作,且DST和SRC的尋址方式均為隱含尋址。這類指令要遵循的共同約定如下:3.13字符串操作指令①若源串在存儲(chǔ)器,則存儲(chǔ)器地址由DS:SI確定;若源串在寄存器,則:字操作時(shí),在AX中字節(jié)操作時(shí),在AL中3.13字符串操作指令②若目的串在存儲(chǔ)器,則存儲(chǔ)器地址必
4、須由ES:DI確定;若目的串在寄存器,則:字操作時(shí),在AX中字節(jié)操作時(shí),在AL中3.13字符串操作指令③字符串操作指令CPU執(zhí)行后,(SI)或(DI)會(huì)自動(dòng)地修改,其修改方向受DF控制。3.13字符串操作指令1時(shí),會(huì)自動(dòng)地減1或20時(shí),會(huì)自動(dòng)地增1或2當(dāng)DF=受操作類型控制,字節(jié)操作時(shí),增/減1字操作時(shí),增/減23.13字符串操作指令④字符串處理指令的重復(fù)次數(shù)。(重復(fù)執(zhí)行的次數(shù))→CX3.13字符串操作指令?字符串操作指令有:3.13字符串操作指令助記符格式主要功能MOVSDST,SRCMOVSB
5、MOVSW(ES:DI)←(DS:SI)字操作時(shí):(SI)←(SI)±2(DI)←(DI)±2字節(jié)操作時(shí):(SI)←(SI)±1(DI)←(DI)±1字節(jié)傳送字傳送3.13字符串操作指令一、字符串傳送指令在MOVSDST,SRC中,當(dāng)DST和SRC同為字節(jié)類型時(shí),等同于MOVSB指令;當(dāng)DST和SRC同為字類型時(shí),等同于MOVSW指令。3.13字符串操作指令例如指令MOVSVAR1,VAR2并不是完成VAR1變量的內(nèi)容傳送到VAR2,而是將(DS:SI)中的內(nèi)容傳送到由(ES:DI)指定的位置,當(dāng)
6、VAR1和VAR2均為字節(jié)型變量時(shí),該指令等同于MOVSB,當(dāng)VAR1和VAR2均為字型變量時(shí),該指令等同于MOVSW。3.13字符串操作指令說(shuō)明:字符串傳送指令對(duì)PSW的標(biāo)志位無(wú)影響。字符串傳送指令每次只能完成一個(gè)字和字節(jié)的傳送,而實(shí)際應(yīng)用中,經(jīng)常需要將一塊存儲(chǔ)區(qū)域的內(nèi)容整體搬移到另一個(gè)位置,為此,8086提供了重復(fù)前綴。3.13字符串操作指令二、重復(fù)前綴有三種形式:REPREPZ/REPEREPNZ/REPNE它們放在字符串操作指令之前,表示重復(fù)執(zhí)行該指令,重復(fù)次數(shù)由CX決定。助記符格式主要功
7、能REPMINST當(dāng)(CX)≠0時(shí),重復(fù)執(zhí)行MINST,(CX)-1→(CX);MINSTSTOSWSTOSBMOVSWMOVSB3.13字符串操作指令1.重復(fù)前綴REP相當(dāng)于LOOP指令3.13字符串操作指令當(dāng)REP與MOVS指令配合時(shí),有REPMOVSB;(ES:DI)←(DS:SI)(字節(jié)傳送),;(SI)←(SI)±1,(DI)←(DI)±1,;(CX)←(CX)-1,(CX)≠0時(shí)重復(fù)執(zhí)行,;即當(dāng)(CX)=0時(shí)退出循環(huán)REPMOVSW;與REPMOVSB指令類似,;只是每次傳送一個(gè)字助記
8、符格式主要功能REPE/REPZCINST當(dāng)(CX)≠0時(shí),且ZF=1時(shí),重復(fù)執(zhí)行CINST,(CX)-1→(CX);3.13字符串操作指令CINSTCMPSSCAS2.重復(fù)前綴REPZ/REPE相當(dāng)于LOOPZ/LOOPE指令助記符格式主要功能REPNE/REPNZCINST當(dāng)(CX)≠0時(shí),且ZF=0時(shí),重復(fù)執(zhí)行CINST,(CX)-1→(CX).3.13字符串操作指令CINSTSCASCMPS3.重復(fù)前綴REPNZ/REPNE相當(dāng)于LOOPNZ/LOOPNE指令助記符格式主要