微型計算機(jī)硬件基礎(chǔ)-指令系統(tǒng)(2)_第1頁
微型計算機(jī)硬件基礎(chǔ)-指令系統(tǒng)(2)_第2頁
微型計算機(jī)硬件基礎(chǔ)-指令系統(tǒng)(2)_第3頁
微型計算機(jī)硬件基礎(chǔ)-指令系統(tǒng)(2)_第4頁
微型計算機(jī)硬件基礎(chǔ)-指令系統(tǒng)(2)_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、微型機(jī)原理與應(yīng)用 第 9-10 次課章節(jié)名稱第三章 80x86指令系統(tǒng)和尋址方式第三節(jié) 80x86指令系統(tǒng)(2)目的要求1教學(xué)目的:掌握算術(shù)運(yùn)算指令、邏輯指令和移位指令、串操作指令的格式、功能及注意事項; 2教學(xué)要求:掌握算術(shù)指令、邏輯指令、位處理指令的格式、功能及注意事項;掌握串操作指令的格式、功能及注意事項;了解串操作指令的特點;掌握重復(fù)前綴的功能。主要內(nèi)容與時間概算序號主要內(nèi)容時間概算1算術(shù)運(yùn)算指令50分2邏輯運(yùn)算指令30分3移位指令20分4串操作指令50分5分6分7分8分共計150分重點難點 重點:算術(shù)指令、邏輯指令、位處理指令串操作指令 難點:難點:常用串操作指令的格式、功能及注意事

2、項。方法手段課堂講授,演示相關(guān)程序,通過指令在程序中的具體應(yīng)用加深學(xué)員對指令的理解。 (續(xù)表)課 堂 提 問十進(jìn)制調(diào)整指令的條件?本 次 課 內(nèi) 容 總 結(jié)本節(jié)課我們學(xué)習(xí)了匯編語言中另外一些重要的指令,其中位操作指令是比較容易理解的,邏輯運(yùn)算指令我們以前也接觸過,相對容易,比較難于理解和記憶的是串操作指令,其中串操作所默認(rèn)的段基址我們要尤其注意,還有連續(xù)串操作的條件。大家要把學(xué)習(xí)重點放在串操作指令上。思考題作業(yè)題作業(yè): 第三章習(xí)題 6-10參考資料計算機(jī)硬件技術(shù)基礎(chǔ)第三章填表說明:1.該表供主講教員備課使用,每次課均應(yīng)按表中所列內(nèi)容填寫,各次課構(gòu)成一門課教案的整體;2.表中相關(guān)項目內(nèi)容的詳略程

3、度由主講教員酌情掌握;3.該表可書寫或電腦錄入,書寫字跡應(yīng)工整,電腦錄入應(yīng)按格式中顯示的字體、字號(仿宋GB2312小四)填寫,外語可用Times New Roman字體。授課內(nèi)容上節(jié)課內(nèi)容回顧:上次課我們學(xué)習(xí)了數(shù)據(jù)傳送指令,這是匯編語言中最常用的指令,他們的功能和特性要特別牢記。在mov指令中也有一些特別需要理解的知識,需要和借助微處理的結(jié)構(gòu)特點來記憶,大家要掌握記憶方法。本節(jié)課我們要學(xué)習(xí)一些其他同樣重要的指令:算術(shù)運(yùn)算指令、邏輯運(yùn)算指令,移位指令和串指令。主要內(nèi)容n 算術(shù)運(yùn)算指令Ø 加法指令Ø 減法指令Ø 乘法指令Ø 除法指令Ø 十進(jìn)制調(diào)整

4、指令n 位處理指令Ø 邏輯運(yùn)算指令Ø 移位指令n 串操作指令332 算術(shù)運(yùn)算類指令8086的算術(shù)運(yùn)算包括二進(jìn)制運(yùn)算和十進(jìn)制運(yùn)算,十進(jìn)制運(yùn)算的結(jié)果通過調(diào)整指令獲得,算術(shù)運(yùn)算指令共18條,可分為5組,如下表所示。在算術(shù)運(yùn)算指令的操作數(shù)中,均不包含段寄存器。助記符功能加法指令A(yù)DD加法ADC帶進(jìn)位的加法INC增量(加1)減法指令SUB減法SBB帶借位的減法DEC減量(減1)NEG求補(bǔ)CMP比較乘法指令MUL無符號數(shù)乘法IMUL帶符號數(shù)乘法除法指令DIV無符號數(shù)除法IDIV帶符號除法十進(jìn)制調(diào)整指令DAA加法的十進(jìn)制調(diào)整DAS減法的十進(jìn)制調(diào)整AAA加法的ASCII調(diào)整AAS減法的AS

5、CII調(diào)整AAM乘法的ASCII調(diào)整AAD除法的ASCII調(diào)整(1)ADD加法指令格式:ADDdest,src (B/W)其中,dest可為reg或mem;src可為reg,mem或data。功能:destdest+src注:1)dest和src不能同時為mem;2)標(biāo)志寄存器中狀態(tài)位隨運(yùn)算結(jié)果而變化,如若相加之后產(chǎn)生進(jìn)位,則有CF=1,若在結(jié)果中次高位的進(jìn)位和最高位的進(jìn)位不同,則有OF=1;3)指令中的操作數(shù)是帶符號數(shù)還是無符號數(shù)由程序員解釋。Ø 累加器與立即數(shù)、通用寄存器、存儲單元相加,結(jié)果在累加器中: ADD AL,30H ADD AX,SI ADD AX,2000HØ

6、; 通用寄存器與立即數(shù)、通用寄存器或存儲單元內(nèi)容相加,和在通用寄存器中: ADD BX,0122H ADD CX,DI ADD CX,DATA SI Ø 存儲器操作數(shù)與立即數(shù)、累加器或別的 寄存器,和在此存儲單元中: ADD BETA SI ,0100H ADD BETA SI ,AX ADD DI,BX加法指令對條件標(biāo)志位(CF/OF/ZF/SF)的影響: 列出加法指令對這幾個狀態(tài)標(biāo)志的實際影響在實際編程中,大家容易出錯的地方:溢出問題,以下作一討論:例1:對于n=8bit的帶符號數(shù)(-128127) 數(shù)或 無符號數(shù)(0255)帶符號數(shù)和無符號數(shù)都不溢出例2:對于n=8bit的帶符

7、號數(shù)(-128127) 數(shù)或 無符號數(shù)(0255)帶符號數(shù)和無符號數(shù)都溢出例3:對于n=8bit的帶符號數(shù)(-128127) 數(shù)或 無符號數(shù)(0255)帶符號數(shù)不溢出,無符號數(shù)溢出例4:對于n=8bit的帶符號數(shù)(-128127) 數(shù)或 無符號數(shù)(0255)帶符號數(shù)溢出,無符號數(shù)不溢出(2)ADC帶進(jìn)位加法指令格式:ADC dest,src (B/W)其中對dest,src的要求同ADD指令。功能:destdest+src+CF,其中CF為進(jìn)位位的值。該指令用于兩個大數(shù)(多字節(jié)數(shù))的相加?!纠?-5】 設(shè)有一32位數(shù)存放在DX和AX寄存器中,DX中放高16位,AX中放低16位,同樣有一32位數(shù)

8、存放在BX和CX寄存器中,計算這兩個32位數(shù)的和,并存于DX和AX寄存器中。 實現(xiàn)以上功能的指令序列為:ADDAX,CX ADCDX,BX舉例:內(nèi)存中兩個4字節(jié)數(shù)的加法運(yùn)算:MOV AX,F(xiàn)IRSTADD AX,SECONDMOV THIRD,AXMOV AX,F(xiàn)IRST + 2ADC AX,SECOND + 2MOV THIRD +2,AX(3)INC 加1指令格式:INCdest式中,dest為reg或mem。功能:destdest+1該指令常用于修改地址指針和用作加1計數(shù),它不影響標(biāo)志位CF,其它狀態(tài)位隨結(jié)果而變。例: INC CX INC BYTE PTR SI(4)SUB減法指令格式

9、:SUB dest,src (B/W)對dest,src的要求同ADD指令。功能:destdest-src該指令影響所有標(biāo)志位。減法指令功能示意圖2張舉例:SUB AL,30H ;累加器中減去立即數(shù) SUB BX,1000H ;寄存器減去立即數(shù) SUB COUNT 2000H ,01H ;內(nèi)存操作數(shù)減去立即數(shù) SUB BX,DX SUB BX, BP SUB SI , CX(5)SBB帶借位減法指令格式:SBB dest,src (B/W)對dest,src的要求同ADD指令。功能:destdest-src-CF,類似于ADC指令。該指令影響所有標(biāo)志位。例: SBB AX,CX SBB AX,

10、 BX (6)DEC指令格式:DEC dest (B/W)式中,dest為reg或mem。功能:destdest-1,類似于INC指令該指令常用于修改地址指針和用作減1計數(shù),同INC指令一樣,它不影響標(biāo)志位CF,其它狀態(tài)位隨結(jié)果而變。例: DEC CX DEC BYTE PTR BX (7)NEG求補(bǔ)指令格式:NEGdest (B/W)式中,dest為reg或mem功能:dest0-dest該指令影響所有標(biāo)志位。例: NEG AL NEG CX NEG BX注意:NEG指令對六個標(biāo)志位均有影響,但要注意兩點:Ø 指行NEG指令后,一般都會使CF置1(除非操作數(shù)為0)。Ø 當(dāng)

11、指定的操作數(shù)的值為80H(-128)或為8000H(-32768),則執(zhí)行NEG指令后,結(jié)果不變,但OF置1,其他情況下均置0。(8)CMP比較指令格式:CMP dest,src (B/W)其中對dest,src的要求同ADD指令。功能:dest-src,結(jié)果不回送,即指令執(zhí)行后,兩個操作數(shù)的內(nèi)容不變,僅將運(yùn)算結(jié)果的特性反映在標(biāo)志位上。 示例:寄存器與立即數(shù)、其它寄存器、存儲器: CMP AL,10 CMP BX,DI CMP CX,DATA BX 存儲器與立即數(shù)、寄存器: CMP DATA,200 CMP BP ,CX CMP DI ,BX比較兩個數(shù)的方法:(CMP AX,BX)是否相等的判

12、斷:ZF=1,相等; ZF=0,不相等。無符號數(shù)大小的判斷: CF=0,AX BX ; CF=1,AX < BX。帶符號數(shù)大小的判斷: 無溢出(OF=0)時,若SF=0,則 AX > BX 若SF=1,則 AX < BX 有溢出(OF=1)時,若SF=0,則 AX < BX 若SF=1,則 AX > BXn 例題: 設(shè)自BLOCK開始的內(nèi)存單元中,存有100個無符號數(shù)(為16位數(shù)),請找出其中的最大值,把它存放到MAX單元中。 程序段如下: LEA BX,BLOCK;置起始地址指針 MOV CX,99 ;CX放比較次數(shù) MOV AX, BX AGAIN: INC

13、BX INC BX CMP AX, BX JG NEXT MOV AX, BX NEXT:DEC CX JNZ AGAIN MOV MAX,AX(9)MUL無符號數(shù)乘法指令格式:MUL src (B/W)其中src是乘數(shù),可以是reg或mem,被乘數(shù)和乘積是隱含的,所有操作數(shù)都是無符號數(shù)。功能:字節(jié)數(shù)據(jù):AXAL*src字?jǐn)?shù)據(jù):DX:AXAX*src注:1) 當(dāng)結(jié)果的高半部分=0時,CF0,OF0,表示高半部分無有效數(shù)字。否則CF1,OF1;2) 其余狀態(tài)位都不確定。例:MUL CLMUL BXMUL BYTE PTR SI;AL中內(nèi)容與SI所指單元中內(nèi)容相乘結(jié)果在AX中(10)IMUL帶符號

14、數(shù)乘法指令格式:IMULsrc (B/W)除操作數(shù)是帶符號數(shù)外,其它一切同MUL指令。說明:若乘積的高半部分(AH/字節(jié),DX/字)不是低半部分的符號擴(kuò)展,則:CF=1,OF=1;否則CF=0,OF=0,對其它標(biāo)志無定義。例: IMUL CX (11)DIV無符號數(shù)除法指令 格式:DIV src (B/W) 其中src是除數(shù),可以是reg或mem,被除數(shù)、商和余數(shù)都是隱含的,所有操作數(shù)都是無符號數(shù)。功能:字節(jié)數(shù)據(jù):ALAX/src的商 AHAX/src的余數(shù) 字?jǐn)?shù)據(jù):AX(DX:AX)/src的商 DX(DX:AX)/src的余數(shù)執(zhí)行除法指令后,所有的狀態(tài)位都是不確定的;說明: 除法指令對所有

15、條件碼位均無定義。 若除數(shù)為0,則在內(nèi)部產(chǎn)生一個類型0中斷。(12)IDIV帶符號數(shù)除法指令格式:IDIV src商的符號根據(jù)代數(shù)除法規(guī)則規(guī)定,余數(shù)的符號和被除數(shù)的符號相同,除操作數(shù)是帶符號數(shù)外,其它一切同DIV指令。在使用除法指令時,要求被除數(shù)的寬度是除數(shù)的兩倍,如果被除數(shù)的寬度不夠,對于無符號數(shù),可在其前面加0擴(kuò)成要求寬度的數(shù),對于帶符號數(shù),可采用類型轉(zhuǎn)換指令進(jìn)行擴(kuò)展。注意: 商的符號根據(jù)代數(shù)除法規(guī)則規(guī)定,余數(shù)的符號與被除數(shù)的符號相同; 除法指令對所有條件碼位均無定義; 在字節(jié)相除時,商的范圍為-128+127;在字相除時,商的范圍為-32768+32767,若超出這個范圍,作為除數(shù)為0的

16、情況來處理,即內(nèi)部產(chǎn)生一個類型0中斷。算術(shù)運(yùn)算指令綜合舉例 計算(V-(X*Y+Z)/X,其中X, Y, Z, V均為16位有符號數(shù),要求商存入AX,余數(shù)存入DXMOV AX, XIMUL Y;X*Y,積在DX:AXMOV CX, AXMOV BX, DX;積存BX:CXMOV AX, ZCWD;Z擴(kuò)展,將AX的內(nèi)容符號擴(kuò)展到 ;DX:AX中ADD CX, AX;X*Y+Z存BX:CXADC BX, DXMOV AX, VCWD;V擴(kuò)展到DX:AXSUB AX, CX;相減SBB DX, BX ; (V-(X*Y+Z)存DX:AXIDIV X;除以X以下介紹幾條調(diào)整指令:壓縮的BCD碼調(diào)整指令

17、: DAA-加法的十進(jìn)制調(diào)整 DAS-減法的十進(jìn)制調(diào)整非壓縮的BCD碼調(diào)整指令: AAA-加法的ASCII調(diào)整 AAS-減法的ASCII調(diào)整 AAM-乘法的ASCII調(diào)整 AAD-除法的ASCII調(diào)整(13)DAA加法的十進(jìn)制調(diào)整指令格式:DAA功能:對隱含操作數(shù)AL中的壓縮BCD數(shù)加法結(jié)果進(jìn)行調(diào)整,得到正確的壓縮BCD數(shù),調(diào)整的規(guī)律為:若AL的低4位9或AF1,則ALAL+06H,AF1; 若AL的高4位9或CF1,則ALAL+60H,CF1;注:1)該指令一般緊跟在ADD或ADC指令后;2)執(zhí)行后狀態(tài)位OF不確定,其余狀態(tài)位隨運(yùn)算結(jié)果而變;3)該指令一般用于壓縮BCD數(shù)的加法運(yùn)算?!纠?-

18、6】 實現(xiàn)十進(jìn)制加法運(yùn)算16+28=44。MOVAL,16HADD AL,28H;AL=3EHDAA ;AL=44H(14)DAS減法的十進(jìn)制調(diào)整指令格式:DAS功能:對AL中的壓縮BCD數(shù)減法結(jié)果進(jìn)行調(diào)整,得到正確的壓縮BCD數(shù),調(diào)整的規(guī)律為:若AL的低4位9或AF1,則ALAL-06H,AF1; 若AL的高4位9或CF1,則ALAL-60H,CF1;注:1)該指令一般緊跟在SUB或SBB指令后;2)執(zhí)行后狀態(tài)位OF不確定,其余狀態(tài)位隨運(yùn)算結(jié)果而變;3)該指令一般用于壓縮BCD數(shù)的減法運(yùn)算。(15)AAA 加法的ASCII調(diào)整指令格式:AAA功能:對AL中的非壓縮BCD數(shù)(或十進(jìn)數(shù)的ASCI

19、I碼)的加法結(jié)果進(jìn)行調(diào)整,得到正確的非壓縮BCD數(shù)結(jié)果,調(diào)整的規(guī)律為:AL的低4位>9或AF=1,則ALAL+06H;AHAH+1;AF1,CFAF;ALALÙ0FH;其中AHAH+1用來實現(xiàn)低位BCD數(shù)向高位的進(jìn)位。注:1)該指令一般緊跟在ADD或ADC指令后;2)狀態(tài)位AF、CF隨操作數(shù)結(jié)果變化,其余狀態(tài)位都不確定;3)該指令一般用于非壓縮BCD數(shù)的加法運(yùn)算。【例3-7】 實現(xiàn)非壓縮BCD數(shù)07和08的加法運(yùn)算。MOVAL,07HADD AL,08H;AL=0FHAAA ;AH=01H,AL=05H(16)AAS減法的ASCII調(diào)整指令格式:AAS功能:對AL中的非壓縮BC

20、D數(shù)(或十進(jìn)制數(shù)的ASCII碼)的減法結(jié)果進(jìn)行調(diào)整,得到正確的非壓縮BCD數(shù)結(jié)果,調(diào)整的規(guī)律為:AL的低4位>9或AF=1,則ALAL-06H;AHAH-1;AF1,CFAF;ALALÙ0FH。其中AHAH-1用來實現(xiàn)低位BCD數(shù)向高位的借位。注:1)該指令一般緊跟在SUB或SBB指令后;2)狀態(tài)位AF、CF隨操作數(shù)結(jié)果變化,其余狀態(tài)位都不確定;3)該指令一般用于非壓縮BCD數(shù)的減法運(yùn)算。(17)AAM乘法的ASCII調(diào)整指令格式:AAM功能:對AL中的非壓縮BCD數(shù)的乘法結(jié)果進(jìn)行調(diào)整,得到正確的非壓縮BCD數(shù)結(jié)果,調(diào)整的規(guī)律為:AHAL/10的商(高位非壓縮BCD數(shù));ALA

21、L/10的余數(shù)(低位非壓縮BCD數(shù))。注:1)該指令一般緊跟在MUL指令后;2)影響狀態(tài)位SF、ZF和PF,其余狀態(tài)位不確定;3)該指令一般用于非壓縮BCD數(shù)的乘法運(yùn)算?!纠?-8】 實現(xiàn)非壓縮BCD數(shù)06和08的乘法運(yùn)算。MOVAL,06HMOVBL,08HMULBL;AH=0,AL=30HAAM ;AH=04H,AL=08H(18)AAD除法的ASCII調(diào)整指令格式:AAD功能:對AX中的非壓縮BCD數(shù)進(jìn)行調(diào)整,調(diào)整的規(guī)律為:ALAH*10+AL;AH0。注:1) 該指令一般放在DIV指令之前;2)影響狀態(tài)位SF、ZF和PF,其余狀態(tài)位不確定;3)該指令一般用于非壓縮BCD數(shù)的除法運(yùn)算?!?/p>

22、例3-9】 實現(xiàn)非壓縮BCD數(shù)0408H和09H的除法運(yùn)算。MOVAX,0408HMOVBL,09HAAD;AX=0030HDIVBL;AL=05H, AH=03H 邏輯運(yùn)算和移位指令邏輯指令包括邏輯運(yùn)算指令和移位操作指令兩大類。 其中邏輯運(yùn)算指令是一組重要的指令,它包括:邏輯與(AND)、邏輯或(OR)、邏輯非(NOT)和異或指令(XOR),邏輯運(yùn)算指令也是經(jīng)常使用的指令。 移位操作指令是另一組經(jīng)常使用的指令,它包括算術(shù)移位、邏輯移位、雙精度移位、循環(huán)移位和帶進(jìn)位的循環(huán)移位等五大類。1. 邏輯運(yùn)算指令操作碼ANDORNOTXORTEST操作功能與或非異或測試表3-1 邏輯運(yùn)算指令對標(biāo)志位的影

23、響指令OFCFSFPFZFAFAND=0=00或10或10或1無定義OR=0=00或10或10或1無定義XOR=0=00或10或10或1無定義TEST=0=00或10或10或1無定義NOT不影響不影響不影響不影響不影響不影響【例】已知(BH)=67H,要求把其的第0、1和5位置為0。 解:可以構(gòu)造一個立即數(shù),其第0、1和5位的值為0,其它位的值為1,該立即數(shù)即為:0DCH或11011100B,然后用指令“ AND BH, 0DCH “ 來實現(xiàn)此功能。 2. 移位指令(a)邏輯左移指令操作示意圖0CFLSBMSB0CFLSBMSB(b)邏輯右移指令操作示意圖0CFLSBMSB(c)算術(shù)左移指令操

24、作示意圖CFMSBLSB(d) 算術(shù)右移指令操作示意圖CFLSBMSB(e) 小循環(huán)左移指令操作示意圖CFLSBMSB(f) 小循環(huán)右移指令操作示意圖CFLSBMSB(g) 大循環(huán)左移指令操作示意圖CFLSBMSB (h) 大循環(huán)右移指令操作示意圖Ø 算術(shù)左移SAL/算術(shù)右移SAR格式: SAL/SAROPR, count 注意:移1位時, count可以為立即數(shù)1;移多位時, count必須先存入CL寄存器受影響的標(biāo)志位:CF、OF、PF、SF和ZF(AF無定義)。功能:SAL把目的操作數(shù)的低位向高位移,空出的低位補(bǔ)0;SAR把目的操作數(shù)的高位向低位移,空出的高位用最高位(符號位)

25、填補(bǔ)算術(shù)移位指令常用于帶符號數(shù)*2或/2Ø 邏輯左移SHL/邏輯右移SHR 它們的指令格式如下: SHL/SHROPR, count受影響的標(biāo)志位:CF、OF、PF、SF和ZF(AF無定義)。邏輯左移/右移指令只有它們的移位方向不同,移位后空出的位都補(bǔ)0。 邏輯移位指令常用于無符號數(shù)*2或/2循環(huán)移位指令有:Ø 循環(huán)左移ROL/循環(huán)右移ROR指令的格式:ROL/ROROPR, count受影響的標(biāo)志位:CF和OF循環(huán)左移/右移指令只是移位方向不同,它們移出的位不僅要進(jìn)入CF,而且還要填補(bǔ)空出的位。 帶進(jìn)位的循環(huán)移位指令有:Ø 帶進(jìn)位的循環(huán)左移RCL/帶進(jìn)位的循環(huán)右

26、移RCR。指令的格式:RCL/RCROPR, count受影響的標(biāo)志位:CF和OF帶進(jìn)位的循環(huán)左移右移指令只有移位的方向不同,它們都用原CF的值填補(bǔ)空出的位,移出的位再進(jìn)入CF。 例:移位指令可實現(xiàn)乘法功能 MOV SI,AX SHL SI,1 ;SI2×AX ADD SI,AX ;SI3×AX MOV DX,BX MOV CL,03H SHL DX,CL ;DX8×BX SUB DX,BX ;DX7×BX ADD DX,SI ;DX7×BX3×AX注:(1)邏輯左移一位相當(dāng)于無符號數(shù)乘以2, (2)邏輯右移一位相當(dāng)于無符號數(shù)除以2。

27、例:移位指令可實現(xiàn)乘法功能 MOV SI,AX SHL SI,1 ;SI2×AX ADD SI,AX ;SI3×AX MOV DX,BX MOV CL,03H SHL DX,CL ;DX8×BX SUB DX,BX ;DX7×BX ADD DX,SI ;DX7×BX3×AX注:(1)邏輯左移一位相當(dāng)于無符號數(shù)乘以2, (2)邏輯右移一位相當(dāng)于無符號數(shù)除以2。3.3.4串操作指令字符串操作指令的實質(zhì)是對一片連續(xù)存儲單元進(jìn)行處理,這片存儲單元是由隱含指針DS:SI或ES:DI來指定的。字符串操作指令可對內(nèi)存單元按字節(jié)或字進(jìn)行處理,并能根據(jù)

28、操作對象的字節(jié)數(shù)使變址寄存器SI(和DI)增減1或2。具體規(guī)定如下:(1)當(dāng)DF=0時,變址寄存器SI(和DI)增加1或2;(2) 當(dāng)DF=1時,變址寄存器SI(和DI)減少1或2。在后面各指令中,有關(guān)變址寄存器都按上述規(guī)定進(jìn)行增減,不再一一說明。 有關(guān)串操作的指令有5條,分別為:MOVS LODS STOS CMPS SCAS助記符功能串操作指令MOVS(MOVSB,MOVSW)串傳送(字節(jié)傳送,字傳送)CMPS(CMPSB,CMPSW)串比較(字節(jié)比較,字比較)STOS(STOSB,STOSW)存入串(存入字節(jié),存入字)LODS(LODSB,LODSW)取出串(取出字節(jié),取出字)SCAS(

29、SCASB,SCASW)掃描串(掃描字節(jié),掃描字)重復(fù)前綴REP重復(fù)操作REPE/REPZ等于/為零重復(fù)REPNE/REPNZ不等于/不為零重復(fù)1. 串傳送指令(1)格式:重復(fù)前綴指令REP 重復(fù)前綴指令是重復(fù)其后的字符串操作指令,重復(fù)的次數(shù)由CX來決定。其一般格式為: REP MOVS / STOS / LODS(2)執(zhí)行的操作:重復(fù)前綴指令的執(zhí)行步驟如下:1、判斷:CX=0;2、如果CX=0,則結(jié)束重復(fù)操作,執(zhí)行程序中的下一條指令;3、否則,CX=CX-1(不影響有關(guān)標(biāo)志位),并執(zhí)行其后的字符串操作指令,在該指令執(zhí)行完后,再轉(zhuǎn)到步驟(1)。(3)MOVS指令字符串傳送指令(Move Str

30、ing Instruction)功能:將以SI為指針的源串中的一個字節(jié)(或字)存儲單元中的數(shù)據(jù)傳送至以DI為指針的目的地址中去,并自動修改指針,使之指向下一個字節(jié)(或字)存儲單元。即: (DS:SI)ES:DI。 當(dāng)DF=0時,(SI)和(DI)增量。 當(dāng)DF=1時,(SI)和(DI)減量。指令的格式: MOVS  DST,SRC (需在操作數(shù)中表明數(shù)據(jù)格式) MOVSB (字節(jié)) MOVSW (字) 注 字節(jié)操作:(SI)(SI)±1, (DI)(DI)±1 字 操 作: (SI)(SI)±2, (DI)(DI)±2 (4)LODS指令取字符串?dāng)?shù)據(jù)指令(Load String Instruction)功能:將SI所指的源串中的一個字節(jié)(或字)存儲單元中的數(shù)據(jù)取出來送入AL(或AX)中。即: 字節(jié)操作:(SI)AL,字操作:(SI)AX。 修改指針SI,使它指向串中的下一個元素。 當(dāng)DF=0時,(SI)增量。當(dāng)DF=1時,(SI)減量。 指令的格式: LODS  SRC (需在操作數(shù)中表明數(shù)據(jù)格式) LODSB (字節(jié)) LODSW (字)(5)STOS指令置字符串?dāng)?shù)據(jù)指令(Store String Instruction) 功能:將AL或AX中的數(shù)據(jù)送入EI:DI所指的目的串中的字節(jié)(或字)存儲單元中。即:

溫馨提示

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

評論

0/150

提交評論