微機(jī)原理與接口技術(shù)(樓順天)-第3章6_第1頁
微機(jī)原理與接口技術(shù)(樓順天)-第3章6_第2頁
微機(jī)原理與接口技術(shù)(樓順天)-第3章6_第3頁
微機(jī)原理與接口技術(shù)(樓順天)-第3章6_第4頁
微機(jī)原理與接口技術(shù)(樓順天)-第3章6_第5頁
已閱讀5頁,還剩58頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

本教案內(nèi)容第3章8086CPU指令系統(tǒng)匯編語言指令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輸入輸出指令其它指令宏指令13.循環(huán)控制指令

為了便于循環(huán)控制,8086/8088CPU專門設(shè)置了一類循環(huán)控制類指令:3.10循環(huán)控制指令23.10循環(huán)控制指令格式:LOOPLABEL

;(CX)←(CX)-1,(CX)≠0時(shí)轉(zhuǎn)LABELLOOPZ/LOOPELABEL

;(CX)←(CX)-1,(CX)≠0且ZF=1時(shí)轉(zhuǎn)LABELLOOPNZ/LOOPNELABEL

;(CX)←(CX)-1,(CX)≠0且ZF=0時(shí)轉(zhuǎn)LABELJCXZLABEL

;CX=0時(shí)轉(zhuǎn)LABEL說明:循環(huán)控制指令的尋址方式均為段內(nèi)直接轉(zhuǎn)移,而且為短轉(zhuǎn)移方式。33.10循環(huán)控制指令1.LOOP指令LOOP(Loop)指令為常用的循環(huán)控制指令,(CX)的內(nèi)容為設(shè)定的循環(huán)次數(shù),每循環(huán)一次(CX)的內(nèi)容減1,直到(CX)為零時(shí)退出循環(huán)。其循環(huán)結(jié)構(gòu)為: MOVCX,次數(shù) ;循環(huán)準(zhǔn)備標(biāo)號(hào): ;循環(huán)體 LOOP標(biāo)號(hào)這里的“標(biāo)號(hào)”與“LOOP標(biāo)號(hào)”指令之間至多包含128字節(jié),這是因?yàn)檠h(huán)控制指令為短轉(zhuǎn)移指令。

43.10循環(huán)控制指令2.LOOPZ/LOOPE指令LOOPZ/LOOPE(Loopifzero/equal)指令與LOOP指令類似,只是當(dāng)(CX)≠0且ZF=1時(shí)才轉(zhuǎn)至LABEL,因此是否循環(huán),除了與設(shè)定的循環(huán)次數(shù)有關(guān)外,還與循環(huán)中設(shè)定的條件是否滿足有關(guān)。例如:MOVCX,10

L1:

CMPAX,BX;若(AX)≠(BX),即ZF=0,則退出循環(huán)LOOPZL1這種指令非常適合于在指定區(qū)域中查找不同的“字符”,當(dāng)找到不同的“字符”時(shí),會(huì)自動(dòng)提出循環(huán)。

53.10循環(huán)控制指令3.LOOPNZ/LOOPNELOOPNZ/LOOPNE(Loopifnotzero/notequal)指令的功能與LOOPZ/LOOPE指令相反,只是當(dāng)(CX)≠0且ZF=0時(shí)才轉(zhuǎn)至LABEL。例如:MOVCX,10

L2:

CMPAX,BX;若(AX)=(BX),即ZF=1,則退出循環(huán)LOOPNZL2這種指令非常適合于在區(qū)域中查找指定的“字符”,當(dāng)找到指定的“字符”時(shí),會(huì)自動(dòng)退出循環(huán)。

63.10循環(huán)控制指令4.JCXZ指令JCXZ(JumpifregisterCX=0)指令經(jīng)常與循環(huán)指令配合使用。如果循環(huán)次數(shù)(CX)設(shè)定為0,則要循環(huán)65536次(最大的循環(huán)次數(shù)),這一點(diǎn)與常規(guī)表示不同。為此,應(yīng)該在進(jìn)入循環(huán)前檢查(CX)的值,如果(CX)為0,則跳過循環(huán),這時(shí)可以采用JCXZ指令完成,其結(jié)構(gòu)為:MOVCX,VAR1 ;設(shè)定循環(huán)次數(shù),可能為0JCXZDONE ;當(dāng)(CX)=0時(shí),跳過循環(huán) ;循環(huán)準(zhǔn)備L3: ;循環(huán)體LOOPL3DONE:7本教案內(nèi)容第3章8086CPU指令系統(tǒng)匯編語言指令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輸入輸出指令其它指令宏指令83.11子程序調(diào)用返回指令概念:子程序?yàn)楣δ艽_定、且獨(dú)立的程序段。優(yōu)點(diǎn):可以將任何一段獨(dú)立的程序歸整為一個(gè)子程序,當(dāng)需要該段程序時(shí),只需調(diào)用子程序即可,調(diào)用后會(huì)自動(dòng)返回到調(diào)用指令的下一條指令。因此采用子程序設(shè)計(jì)時(shí),可以簡(jiǎn)化程序設(shè)計(jì)。從調(diào)試程序的角度,由于原本在多處出現(xiàn)的程序段,縮減為子程序調(diào)用指令,使調(diào)試程序更加方便。93.11子程序調(diào)用返回指令缺點(diǎn):采用子程序設(shè)計(jì)后。由于調(diào)用子程序和從子程序中返回需要執(zhí)行指令,并且為保護(hù)某些寄存器的內(nèi)容,需要進(jìn)行壓入堆棧和彈出堆棧的操作,因此會(huì)使程序執(zhí)行速度受到一定的影響。

103.11子程序調(diào)用返回指令實(shí)現(xiàn):子程序調(diào)用是通過自動(dòng)修改(IP)和/或(CS)的內(nèi)容實(shí)現(xiàn)的。為了確保子程序調(diào)用后能夠返回到調(diào)用指令之后,CALL指令會(huì)自動(dòng)保存返回地址(IP和/或CS),而RET指令會(huì)自動(dòng)返回到CALL指令的下一條指令。

113.11子程序調(diào)用返回指令一、子程序調(diào)用指令CALL子程序調(diào)用指令CALL(Callprocedure)有兩種格式:CALLLABEL ;調(diào)用入口地址為;標(biāo)號(hào)LABEL的子程序CALLOPR ;調(diào)用子程序,其入口地址;為操作數(shù)OPR的內(nèi)容

123.11子程序調(diào)用返回指令CALLLABEL ;調(diào)用入口地址為;標(biāo)號(hào)LABEL的子程序分三種情況:(1)當(dāng)標(biāo)號(hào)LABEL與CALL指令不在同一個(gè)段內(nèi)時(shí),子程序調(diào)用在段間進(jìn)行,其完成的操作有:CS入棧,IP入棧;(IP)←LABEL的偏移地址;(CS)←LABEL的段地址。指令的尋址方式為段間直接尋址。133.11子程序調(diào)用返回指令(2)當(dāng)標(biāo)號(hào)LABEL與CALL指令在同一個(gè)段內(nèi),且可以采用8位有符號(hào)數(shù)表示其相對(duì)位移量時(shí),則子程序調(diào)用在段內(nèi)進(jìn)行,其完成的操作有:IP入棧;(IP)←(IP)+DISP8。指令的尋址方式為段內(nèi)直接尋址,也稱為相對(duì)尋址。(3)當(dāng)標(biāo)號(hào)LABEL與CALL指令在同一個(gè)段內(nèi),且需要采用16位有符號(hào)數(shù)表示其相對(duì)位移量時(shí),則子程序調(diào)用在段內(nèi)進(jìn)行,其完成的操作有:IP入棧;(IP)←(IP)+DISP16。指令的尋址方式為段內(nèi)直接尋址,也稱相對(duì)尋址。143.11子程序調(diào)用返回指令CALLOPR ;調(diào)用子程序,其入口地址;為操作數(shù)OPR的內(nèi)容分為三種情況:(1)當(dāng)OPR為16位的通用寄存器REG16時(shí),則子程序調(diào)用在段內(nèi)進(jìn)行,其完成的操作有:IP入棧;(IP)←(REG16)。指令的尋址方式為段內(nèi)間接尋址。153.11子程序調(diào)用返回指令(2)當(dāng)OPR為16位的存儲(chǔ)單元RAM時(shí),則子程序調(diào)用在段內(nèi)進(jìn)行,其完成的操作有:IP入棧;(IP)←(RAM)。指令的尋址方式為段內(nèi)間接尋址。(3)當(dāng)OPR為32位的存儲(chǔ)單元RAM時(shí),則子程序調(diào)用在段間進(jìn)行,其完成的操作有:CS入棧,IP入棧;(IP)←(RAM),(CS)←(RAM+2)。指令的尋址方式為段間間接尋址。163.11子程序調(diào)用返回指令二、子程序返回指令RET子程序返回指令RET(Returnfromprocedure)有三種格式:RET ;用于段內(nèi)子程序的返回,完成IP出棧,即(IP)←(SP)RETF ;用于段間子程序的返回,完成IP出棧,CS出棧RETn ;完成RET(或RETF)指令功能后,(SP)←(SP)+n173.11子程序調(diào)用返回指令三、過程定義在IBMPC匯編過程中,子程序通常以過程方式編寫。過程定義格式:過程名PROC[類型]

RET過程名ENDP其中,過程名是用戶給子程序起的名字,它可以看作為標(biāo)號(hào),具有段地址、偏移地址和類型的屬性。子程序的類型可以取NEAR(近程過程,可供段內(nèi)調(diào)用)和FAR(遠(yuǎn)程過程,可供段間調(diào)用),當(dāng)類型缺省時(shí),表示NEAR(近程過程)。

18一個(gè)子程序名一但定義,就具有以下三個(gè)屬性段地址段內(nèi)偏移地址類型FARNEAR(可缺?。┚褪亲映绦虻谝粭l指令的地址3.11子程序調(diào)用返回指令193.11子程序調(diào)用返回指令子程序還可以是另一種形式:〈標(biāo)號(hào)〉:

RET20子程序調(diào)用與返回指令應(yīng)用結(jié)構(gòu)①段內(nèi)子程序調(diào)用與返回;主程序CODESEGMENTASSUMECS:CODESTART:

……3.11子程序調(diào)用返回指令21………;子程序SUB1SUB1PROCNEAR

RET;SUB1ENDPCODEENDSENDSTARTCALL

NEARPTR

SUB1可以省略●IP←((SP))●SP←(SP)+2●SP←(SP)-2●((SP))←返回地址(IP)●IP←(IP)+16位DISP3.11子程序調(diào)用返回指令22

;主程序CODEMSEGMENTASSUMECS:CODEMSTART:CALLFARPTRSUB2MOVAH,4CHINT21HCODEMENDS……

;子程序CODESSEGMENTASSUMECS:CODESSUB2PROCFAR

RETF;也可以寫成RETSUB2ENDPCODESENDSENDSTART……①IP←((SP))SP←(SP)+2②CS←((SP))SP←(SP)+2①SP←(SP)-2((SP))←返回地址(CS)②SP←(SP)-2((SP))←返回地址(IP)③IP←OFFSETSUB2CS←SEGSUB2233.11子程序調(diào)用返回指令例3.32子程序設(shè)計(jì),編寫子程序?qū)崿F(xiàn)統(tǒng)計(jì)一個(gè)字(AX)中“1”的個(gè)數(shù)。解:利用移位指令或循環(huán)移位指令,每次對(duì)CF位進(jìn)行檢測(cè)位:當(dāng)CF=1時(shí),則總個(gè)數(shù)加1;當(dāng)CF=0時(shí),則總個(gè)數(shù)不變。這種操作可以采用有條件轉(zhuǎn)移指令來實(shí)現(xiàn),但更方便的方式是采用ADC指令實(shí)現(xiàn)。子程序如下:

243.11子程序調(diào)用返回指令COUNTER1PROCNEARPUSHAX MOVCX,16 XORBL,BLCOU1: SHRAX,1 ADCBL,0 LOOPCOU1POPAXRETCOUNTER1ENDP253.11子程序調(diào)用返回指令例3.33子程序應(yīng)用。利用上例設(shè)計(jì)的子程序,統(tǒng)計(jì)字型變量VAR1中1的個(gè)數(shù)。解:在數(shù)據(jù)段中定義變量VAR1和CounterVar1:

VAR1 DW 1234H CounterVar1 DB?則可在代碼段中編寫程序: MOVAX,VAR1 CALLCOUNTER1 MOV CounterVar1,BL執(zhí)行后,結(jié)果單元CounterVar1的值為5,說明1234H中包含有5個(gè)“1”。

26本教案內(nèi)容第3章8086CPU指令系統(tǒng)匯編語言指令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輸入輸出指令其它指令宏指令273.12中斷調(diào)用與返回指令計(jì)算機(jī)在程序運(yùn)行過程中,由于發(fā)生了某些“緊急事件”,需要進(jìn)行特殊處理(轉(zhuǎn)向中斷服務(wù)子程序執(zhí)行),處理后返回到程序中斷處繼續(xù)執(zhí)行,這種過程稱為中斷處理過程。這里的“緊急事件”可以是由硬件產(chǎn)生的,例如系統(tǒng)掉電、硬件故障、定時(shí)計(jì)數(shù)器溢出等;可以是執(zhí)行指令產(chǎn)生的,例如除法溢出等;還可以是專門的中斷調(diào)用指令所產(chǎn)生的。本節(jié)主要介紹專門的中斷調(diào)用指令、中斷服務(wù)子程序的結(jié)構(gòu)和中斷返回指令。283.12中斷調(diào)用與返回指令一、中斷調(diào)用指令I(lǐng)NT中斷調(diào)用指令I(lǐng)NT(Interrupt)的格式為:

INT n這表示調(diào)用第n號(hào)中斷,n為中斷類型號(hào),其值可以是0~255。當(dāng)執(zhí)行該指令時(shí),會(huì)進(jìn)行下列操作:PSW、CS、IP入棧;清除IF、TF標(biāo)志;從中斷向量表中取出中斷向量(中斷向量為中斷服務(wù)子程序的入口地址);轉(zhuǎn)到中斷服務(wù)子程序進(jìn)行執(zhí)行;中斷服務(wù)子程序的最后一條指令應(yīng)該是中斷返回指令,執(zhí)行該指令可以返回到程序中斷處繼續(xù)執(zhí)行。293.12中斷調(diào)用與返回指令二、中斷返回指令I(lǐng)RET中斷返回指令I(lǐng)RET(Interruptreturn)的格式為:

IRET表示從中斷服務(wù)子程序返回主程序。執(zhí)行該指令時(shí),會(huì)完成IP、CS、PSW的出棧操作,其次序與INTn指令的入棧次序相反。由于修改了IP和CS的內(nèi)容,從而實(shí)現(xiàn)的程序的返回功能。 303.12中斷調(diào)用與返回指令三、中斷向量表每個(gè)中斷服務(wù)子程序的入口地址(稱為中斷向量)為32位(16位的偏移地址和16位的段地址),占用4個(gè)地址單元。計(jì)算機(jī)中采用最低的1024個(gè)地址單元(稱為0頁)來存儲(chǔ)中斷向量,因此,n號(hào)中斷的中斷向量存放地址為:4×n,調(diào)用該中斷時(shí),可以從該地址獲得中斷服務(wù)子程序的入口地址。313.12中斷調(diào)用與返回指令四、中斷服務(wù)子程序結(jié)構(gòu)由于中斷是隨時(shí)可能調(diào)用的程序,我們無法預(yù)知其調(diào)用的位置,這樣在設(shè)計(jì)中斷服務(wù)子程序時(shí),應(yīng)該確保所有寄存器的內(nèi)容保持不變。因此在中斷服務(wù)子程序的入口處,應(yīng)該將用到的寄存器通過堆棧進(jìn)行保護(hù),在中斷程序的返回之前,從堆棧中恢復(fù)寄存器的內(nèi)容。中斷服務(wù)子程序的結(jié)構(gòu)為:323.12中斷調(diào)用與返回指令<中斷子程序名>: PUSHAX ;保護(hù)現(xiàn)場(chǎng) PUSHSI

;中斷子程序主體 POPSI ;恢復(fù)現(xiàn)場(chǎng) POPAX IRET ;中斷返回333.12中斷調(diào)用與返回指令五、系統(tǒng)功能調(diào)用IBMPC/XT機(jī)器提供了許多中斷服務(wù)子程序,在編寫程序時(shí)可以直接進(jìn)行調(diào)用。系統(tǒng)功能調(diào)用分兩類:(1)BIOS功能調(diào)用,它是以系統(tǒng)中所支持的硬件為對(duì)象的,例如13H號(hào)功能為磁盤服務(wù),17H號(hào)功能為打印機(jī)服務(wù);(2)DOS功能調(diào)用,它以軟件方式支持的功能,例如常用的DOS功能調(diào)用有21H、20H、25H、26H等,詳細(xì)說明參見附錄B。34本教案內(nèi)容第3章8086CPU指令系統(tǒng)匯編語言指令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輸入輸出指令其它指令宏指令35所謂字符串是指一組代碼或數(shù)據(jù),并不一定是常規(guī)的由字符構(gòu)成的。字符串操作指令就是對(duì)這組代碼或數(shù)據(jù)進(jìn)行相同功能處理的指令。字符串存放在一個(gè)連續(xù)的存儲(chǔ)區(qū)域中。3.13字符串操作指令363.13字符串操作指令8086系統(tǒng)提供了5類字符串操作指令:字符串傳送MOVS(Movebyteorwordstring)字符串比較CMPS(Comparebyteorwordstring)字符串掃描SCAS(Scanbyteorwordstring)字符串裝入LODS(Loadbyteorwordstring)字符串存儲(chǔ)STOS(Storebyteorwordstring)

373.13字符串操作指令由于這類指令要對(duì)一組代碼進(jìn)行操作,希望能夠成批處理數(shù)據(jù),這需要字符串指令與重復(fù)前綴配合使用。重復(fù)前綴REP(Repeatstringoperation)重復(fù)前綴REPZ/REPE(Repeatstringoperationwhileequal/zero)重復(fù)前綴REPNZ/REPNE(Repeatstringoperationwhilenotequal/notzero)38?字符串處理指令既可以按字節(jié)操作,也可以按字操作,且DST和SRC的尋址方式均為隱含尋址。這類指令要遵循的共同約定如下:3.13字符串操作指令39①若源串在存儲(chǔ)器,則存儲(chǔ)器地址由DS:SI確定;

若源串在寄存器,則:字操作時(shí),在AX中字節(jié)操作時(shí),在AL中3.13字符串操作指令40②

若目的串在存儲(chǔ)器,則存儲(chǔ)器地址必須由ES:DI確定;若目的串在寄存器,則:字操作時(shí),在AX中字節(jié)操作時(shí),在AL中3.13字符串操作指令41

③字符串操作指令CPU執(zhí)行后,(SI)或(DI)會(huì)自動(dòng)地修改,其修改方向受DF控制。3.13字符串操作指令421時(shí),會(huì)自動(dòng)地減1或20時(shí),會(huì)自動(dòng)地增1或2當(dāng)DF=受操作類型控制,字節(jié)操作時(shí),增/減1字操作時(shí),增/減23.13字符串操作指令43④字符串處理指令的重復(fù)次數(shù)。

(重復(fù)執(zhí)行的次數(shù))→CX3.13字符串操作指令44?

字符串操作指令有:

3.13字符串操作指令45助記符格式主要功能MOVSDST,SRCMOVSBMOVSW(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指令。463.13字符串操作指令例如指令MOVSVAR1,VAR2并不是完成VAR1變量的內(nèi)容傳送到VAR2,而是將(DS:SI)中的內(nèi)容傳送到由(ES:DI)指定的位置,當(dāng)VAR1和VAR2均為字節(jié)型變量時(shí),該指令等同于MOVSB,當(dāng)VAR1和VAR2均為字型變量時(shí),該指令等同于MOVSW。473.13字符串操作指令說明:字符串傳送指令對(duì)PSW的標(biāo)志位無影響。字符串傳送指令每次只能完成一個(gè)字和字節(jié)的傳送,而實(shí)際應(yīng)用中,經(jīng)常需要將一塊存儲(chǔ)區(qū)域的內(nèi)容整體搬移到另一個(gè)位置,為此,8086提供了重復(fù)前綴。483.13字符串操作指令二、重復(fù)前綴有三種形式:REPREPZ/REPEREPNZ/REPNE它們放在字符串操作指令之前,表示重復(fù)執(zhí)行該指令,重復(fù)次數(shù)由CX決定。49助記符格式主要功能REPMINST

當(dāng)(CX)≠0時(shí),重復(fù)執(zhí)行MINST,(CX)-1→(CX);MINSTSTOSWSTOSBMOVSWMOVSB3.13字符串操作指令1.重復(fù)前綴REP相當(dāng)于LOOP指令503.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è)字51助記符格式主要功能

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指令52助記符格式主要功能

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指令53助記符格式主要功能CMPSDST,SRCCMPSBCMPSW(DS:SI)-(ES:DI)建立標(biāo)志字操作時(shí):(SI)←(SI)±2(DI)←(DI)±2字節(jié)操作時(shí):(SI)←(SI)±1(DI)←(DI)±1字節(jié)比較字比較3.13字符串操作指令三、字符串比較指令543.13字符串操作指令指令CMPS與CMP類似,比較結(jié)果不進(jìn)行保存,只是用于設(shè)置PSW中的標(biāo)志位,但是,在字符串比較指令中,采用“源操作數(shù)”減去“目的操作數(shù)”,而在CMP指令中,采用“目的操作數(shù)”減去“源操作數(shù)”。因此,對(duì)比較結(jié)果的轉(zhuǎn)移的條件是不同的:CMPDST,SRCCMPSDST,SRCJGABCJGABC當(dāng)(DST)>(SRC)時(shí)轉(zhuǎn)ABC當(dāng)(ES:DI)<(DS:SI)時(shí)轉(zhuǎn)ABC這一點(diǎn)應(yīng)特別引起注意。553.13字符串操作指令字符串比較指令會(huì)正常影響PSW中的6個(gè)標(biāo)志位。CMPS指令經(jīng)常與REPZ/REPE、REPNZ/REPNE配合使用,其含義有所不同。1.REPZCMPS比較兩字符串時(shí),當(dāng)遇到第一個(gè)不相同的字符時(shí),就跳出比較循環(huán)(ZF=0)。2.REPNZCMPS比較兩字符串時(shí),當(dāng)遇到第一個(gè)相同的字符時(shí),就跳出比較循環(huán)(ZF=1)。56助記符格式主要功能SCASDSTSCABSCAW字掃描時(shí):

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論