微機(jī)原理及接口技術(shù)第3章第3節(jié)課件_第1頁(yè)
微機(jī)原理及接口技術(shù)第3章第3節(jié)課件_第2頁(yè)
微機(jī)原理及接口技術(shù)第3章第3節(jié)課件_第3頁(yè)
微機(jī)原理及接口技術(shù)第3章第3節(jié)課件_第4頁(yè)
微機(jī)原理及接口技術(shù)第3章第3節(jié)課件_第5頁(yè)
已閱讀5頁(yè),還剩37頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1格式:INC reg/mem功能:類(lèi)似于C語(yǔ)言中的+操作:對(duì)指定的操作數(shù)加1 例: INC AL INC SI INC BYTE PTRBX+4注:本指令不影響注:本指令不影響CFCF標(biāo)志。標(biāo)志。3) 3) 加加1 1指令指令I(lǐng)NCINC(單操作數(shù)指令單操作數(shù)指令)2ADD/ADC對(duì)條件標(biāo)志位對(duì)條件標(biāo)志位(CF/OF/ZF/SF)的影響:的影響:CF位表示無(wú)符號(hào)數(shù)相加的溢出。位表示無(wú)符號(hào)數(shù)相加的溢出。OF位表示帶符號(hào)數(shù)相加的溢出。位表示帶符號(hào)數(shù)相加的溢出。1 結(jié)果為負(fù)結(jié)果為負(fù)0 否則否則SF=1 結(jié)果為結(jié)果為00 否則否則ZF=1 和的最高有效位有向高位的進(jìn)位和的最高有效位有向高位的進(jìn)位0

2、否則否則CF=1 兩個(gè)操作數(shù)符號(hào)相同,而結(jié)果符號(hào)與之相反兩個(gè)操作數(shù)符號(hào)相同,而結(jié)果符號(hào)與之相反0 否則否則OF=3(1) (1) 不考慮借位的減法指令不考慮借位的減法指令SUBSUB 格式: SUB dest, src 操作: dest(dest)-(src)注:注:1.1.源和目的操作數(shù)不能同時(shí)為存儲(chǔ)器操作數(shù)源和目的操作數(shù)不能同時(shí)為存儲(chǔ)器操作數(shù) 2.2.立即數(shù)不能作為目的操作數(shù)立即數(shù)不能作為目的操作數(shù)指令例子:指令例子: SUB AL,60H SUB BX+20H,DX SUB AX,CX2. 2. 減法指令減法指令4SBB指令主要用于多字節(jié)的減法。格式: SBB dest, src操作:

3、dest(dest)-(src)-(CF)指令例子:指令例子: SBB AX,CX SBB WORD PTRSI,2080H SBB SI,DX(2) (2) 考慮借位的減法指令考慮借位的減法指令SBBSBB5例:例:x、y、z均為均為32位數(shù),分別存放在地址為位數(shù),分別存放在地址為X, X+2;Y,Y+2;Z,Z+2的存儲(chǔ)單元中,用指令序列的存儲(chǔ)單元中,用指令序列實(shí)現(xiàn)實(shí)現(xiàn)w x+y+24-z,結(jié)果放在,結(jié)果放在W, W+2單元中。單元中。 6DX-Z+2-(CF) (DX)X+2+Y +2+(CF) (DX)X+Y (AX)XY+2X+2YZ+2ZW+2WAX+24 (AX)DX+0+(CF

4、) (DX)AX-Z (AX)AX WDX W+27 MOV AX, X MOV DX, X+2 ADD AX, Y ADC DX, Y+2 ; x+y ADD AX, 24 ADC DX, 0 ; x+y+24 SUB AX, Z SBB DX, Z+2 ; x+y+24-z MOV W, AX MOV W+2, DX ; 結(jié)果存入結(jié)果存入W, W+2單元單元8作用類(lèi)似于C語(yǔ)言中的”操作符。格式:DEC opr 操作:opr(opr)-1指令例子:指令例子: DEC CL DEC BYTE PTRDI+2 DEC SI (3) (3) 減減1 1指令指令DECDEC9格式: NEG opr操

5、作: opr 0-(opr)對(duì)一個(gè)操作數(shù)取補(bǔ)碼相當(dāng)于用0減去此操作數(shù),故利用NEG指令可得到負(fù)數(shù)的絕對(duì)值。例:若(AL)=0FCH,則執(zhí)行 NEG AL 后, (AL)=04H,CF=1本例中,0FCH為-4的補(bǔ)碼,執(zhí)行求補(bǔ)指令后,即得到4(-4的絕對(duì)值)。(4) (4) 求補(bǔ)指令求補(bǔ)指令NEGNEG10SUB/SBB對(duì)標(biāo)志位對(duì)標(biāo)志位(CF/OF/ZF/SF)的影響的影響 CF=1表示無(wú)符號(hào)數(shù)減法溢出。表示無(wú)符號(hào)數(shù)減法溢出。 OF=1表示帶符號(hào)數(shù)減法溢出。表示帶符號(hào)數(shù)減法溢出。NEG指令對(duì)指令對(duì)CF/OF的影響:的影響: CF:操作數(shù)為:操作數(shù)為0時(shí),求補(bǔ)的結(jié)果使時(shí),求補(bǔ)的結(jié)果使CF=0,否則

6、,否則CF=1。 OF:字節(jié)運(yùn)算對(duì):字節(jié)運(yùn)算對(duì)-128求補(bǔ)或字運(yùn)算對(duì)求補(bǔ)或字運(yùn)算對(duì)-32768求補(bǔ)時(shí)求補(bǔ)時(shí)OF=1, 否則否則OF=0。(0-80H=80H,但但OF=1)1 被減數(shù)的最高有效位有向高位的借位被減數(shù)的最高有效位有向高位的借位0 否則否則CF=1 兩個(gè)操作數(shù)符號(hào)相反,而結(jié)果的符號(hào)與減數(shù)相同兩個(gè)操作數(shù)符號(hào)相反,而結(jié)果的符號(hào)與減數(shù)相同0 否則否則OF=11格式: CMP dest, src操作: (dest)-(src)CMP也是執(zhí)行兩個(gè)操作數(shù)相減,但結(jié)果不送目標(biāo)操作數(shù),其結(jié)果只反映在標(biāo)志位上。指令例子:指令例子: CMP AL,0AH CMP CX,SI CMP DI,BX+03(

7、5) (5) 比較指令比較指令CMPCMP12根據(jù)標(biāo)志位來(lái)判斷比較的結(jié)果根據(jù)標(biāo)志位來(lái)判斷比較的結(jié)果1)根據(jù)ZF判斷兩個(gè)數(shù)是否相等。若ZF=1,則兩數(shù)相等。2)若兩個(gè)數(shù)不相等,則分兩種情況考慮: 比較的是兩個(gè)無(wú)符號(hào)數(shù) 若CF=0,則destsrc; 若CF=1,則destsrc。 比較的是兩個(gè)有符號(hào)數(shù) 若OF SF=0,則destsrc; 若OF SF=1,則destsrc。13比較指令在使用時(shí),一般在其后緊跟一條比較指令在使用時(shí),一般在其后緊跟一條條件轉(zhuǎn)移指令,判斷比較結(jié)果的轉(zhuǎn)向。條件轉(zhuǎn)移指令,判斷比較結(jié)果的轉(zhuǎn)向。舉例:比較AL、BL、CL中帶符號(hào)數(shù)的大小,將最小數(shù)放在AL中。 14ALBL?

8、交換AL、BL的內(nèi)容YALCL?NYN交換AL、CL的內(nèi)容END CMP AL,BL ;AL和BL比較 JNG BBB ;若ALBL,則轉(zhuǎn) XCHG AL,BL ;若ALBL,則交換BBB:CMP AL,CL ;AL和CL比較 JNG CCC ;若ALCL,則轉(zhuǎn) XCHG AL,CL ;若ALCL,則交換CCC: HLT15 進(jìn)行乘法時(shí):8位*8位16位乘積 16位*16位32位乘積(1) 無(wú)符號(hào)數(shù)的乘法指令MUL(MEM/REG)格式:格式: MUL src操作:字節(jié)操作數(shù)操作:字節(jié)操作數(shù) (AX) (AL) (src) 字操作數(shù)字操作數(shù) (DX, AX) (AX) (src)指令例子:指令

9、例子: MUL BL ;(AL)( (BL),乘積在AX中 MUL CX ;(AX)( (CX),乘積在DX,AX中 MUL BYTE PTRBX3. 3. 乘法指令乘法指令 16格式與MUL指令類(lèi)似,只是要求兩操作數(shù)均為有符號(hào)數(shù)有符號(hào)數(shù)。指令例子:指令例子: IMUL BL ;(AX)(AL)(BL) IMUL WORD PTRSI ;(DX,AX)(AX)(SI+1SI) (2) (2) 有符號(hào)數(shù)乘法指令有符號(hào)數(shù)乘法指令I(lǐng)MULIMUL注意:注意:MUL/IMUL指令中 AL(AX)為隱含的乘數(shù)寄存器; AX(DX,AX)為隱含的乘積寄存器; SRC不能為立即數(shù); 除CF和OF外,對(duì)其它標(biāo)

10、志位無(wú)定義。17乘法指令對(duì)乘法指令對(duì)CF/OF的影響:的影響:0 乘積的高一半為零乘積的高一半為零1 否則否則MUL指令指令: CF/OF =0 乘積的高一半是低一半的符號(hào)擴(kuò)展乘積的高一半是低一半的符號(hào)擴(kuò)展1 否則否則 IMUL指令指令: CF/OF =例:例:(AL) = A5H(-5B),(BL) = 11H (1) IMUL BL ; (AX) (AL)(BL) ; A511 -5B11=-060B F9F5 ; (AX) = F9F5H CF=OF=1 (2) MUL BL ; (AX) (AL)(BL) ; A511= 0AF5 ; (AX) = 0AF5H CF=OF=1 184.

11、 4. 除法指令除法指令進(jìn)行除法時(shí):16位/8位8位商 32位/16位16位商對(duì)被除數(shù)、商及余數(shù)存放有如下規(guī)定: 被除數(shù) 商余數(shù)字節(jié)除法 AX AL AH 字除法 DX:AX AX DX19格式:格式: DIV src操作:字節(jié)操作操作:字節(jié)操作 (AL) (AX) / (SRC) 的商的商 (AH) (AX) / (SRC) 的余數(shù)的余數(shù) 字操作字操作 (AX) (DX, AX) / (SRC) 的商的商 (DX) (DX, AX) / (SRC) 的余數(shù)的余數(shù)指令例子:指令例子: DIV CL DIV WORD PTRBX注:若除數(shù)為零或注:若除數(shù)為零或ALAL中商大于中商大于FFH(FF

12、H(或或AXAX中商大于中商大于FFFFH)FFFFH),則,則CPUCPU產(chǎn)生一個(gè)類(lèi)型產(chǎn)生一個(gè)類(lèi)型0 0的內(nèi)部中斷。的內(nèi)部中斷。(1) (1) 無(wú)符號(hào)數(shù)除法指令無(wú)符號(hào)數(shù)除法指令DIVDIV20(2) (2) 有符號(hào)數(shù)除法指令有符號(hào)數(shù)除法指令I(lǐng)DIVIDIV格式:格式: IDIV src操作與DIV類(lèi)似。商及余數(shù)均為有符號(hào)數(shù),且余數(shù)符號(hào)總是與被除數(shù)符號(hào)相同。注意注意: 對(duì)于對(duì)于DIV/IDIV指令指令 AX(DX,AX)為隱含的被除數(shù)寄存器。為隱含的被除數(shù)寄存器。 AL(AX)為隱含的商寄存器。為隱含的商寄存器。 AH(DX)為隱含的余數(shù)寄存器。為隱含的余數(shù)寄存器。 src不能為立即數(shù)。不能為

13、立即數(shù)。 對(duì)所有條件標(biāo)志位均對(duì)所有條件標(biāo)志位均無(wú)定義無(wú)定義。21 除法運(yùn)算要求被除數(shù)字長(zhǎng)是除數(shù)字長(zhǎng)的兩倍,若不滿(mǎn)足則需對(duì)被除數(shù)進(jìn)行擴(kuò)展對(duì)被除數(shù)進(jìn)行擴(kuò)展,否則產(chǎn)生錯(cuò)誤。 對(duì)于無(wú)符號(hào)數(shù)除法擴(kuò)展,只需將AH或DX清零即可。 對(duì)有符號(hào)數(shù)而言,則是符號(hào)位的擴(kuò)展。可使用前面介紹過(guò)的符號(hào)擴(kuò)展指令CBW和CWD關(guān)于除法操作中的字長(zhǎng)擴(kuò)展問(wèn)題關(guān)于除法操作中的字長(zhǎng)擴(kuò)展問(wèn)題22例例: 寫(xiě)出寫(xiě)出34H25H的程序段。的程序段。MOV AL,34H MOV BL,25H CBW ; AL的符號(hào)擴(kuò)展到AH IDIV BL ; 0034H25H,結(jié)果為 ; (AH)=0FH, (AL)=01H235.BCD5.BCD碼運(yùn)算的

14、十進(jìn)制調(diào)整指令碼運(yùn)算的十進(jìn)制調(diào)整指令 專(zhuān)用于對(duì)BCD碼運(yùn)算的結(jié)果進(jìn)行調(diào)整 包括:AAA、DAA、AAS、DAS、AAM、AAD 均為隱含尋址,隱含的操作數(shù)為ALAL和AHAH 為何要對(duì)BCD碼的運(yùn)算結(jié)果進(jìn)行調(diào)整? BCD碼本質(zhì)上是十進(jìn)制數(shù),即應(yīng)遵循逢碼本質(zhì)上是十進(jìn)制數(shù),即應(yīng)遵循逢十進(jìn)一的規(guī)則。而計(jì)算機(jī)是按二進(jìn)制十進(jìn)一的規(guī)則。而計(jì)算機(jī)是按二進(jìn)制(十六進(jìn)制)進(jìn)行運(yùn)算,并未按十進(jìn)制(十六進(jìn)制)進(jìn)行運(yùn)算,并未按十進(jìn)制規(guī)則進(jìn)行運(yùn)算。規(guī)則進(jìn)行運(yùn)算。241 1) )加法的十進(jìn)制調(diào)整指令加法的十進(jìn)制調(diào)整指令( (1 1) )非壓縮非壓縮BCDBCD碼加法調(diào)整碼加法調(diào)整AAA本指令對(duì)在AL中的由兩個(gè)未組合的BC

15、D碼相加后的結(jié)果進(jìn)行調(diào)正,得到一個(gè)正確的未組合的BCD碼。AAAAAA指令只影響指令只影響AFAF和和CFCF,其余標(biāo)志無(wú)定義。其余標(biāo)志無(wú)定義。AAAAAA指令應(yīng)緊跟在指令應(yīng)緊跟在ADDADD或或ADCADC指令之后。指令之后。25如果AL的低4位9AF=1,則: AL(AL)+6,(AH)(AH)+1,AF1 AL(AL)0FH) CFAF否則AL(AL)0FHAAAAAA指令的操作如下:指令的操作如下:26調(diào)整原理:先看一個(gè)例子調(diào)整原理:先看一個(gè)例子 計(jì)算89 0000 1000 見(jiàn)右式 +0000 1001 0001 0001 11 結(jié)果應(yīng)為17,而計(jì)算機(jī)相加為11,原因在于運(yùn)算過(guò)程中,

16、如遇到低4位往高4位產(chǎn)生進(jìn)位時(shí)(此時(shí)AF=1)是按逢十六進(jìn)一的規(guī)則,但BCD碼要求逢十進(jìn)一,因此只要產(chǎn)生進(jìn)位,個(gè)位就會(huì)少6,這就要進(jìn)行加6調(diào)正。這個(gè)1代表了16,而實(shí)際上僅應(yīng)為10,即多進(jìn)了6。 27實(shí)際上當(dāng)?shù)?位的結(jié)果9(即AF之間)時(shí),也應(yīng)進(jìn)行加6調(diào)正 (原因是逢十沒(méi)有進(jìn)位,故用加6的方法強(qiáng)行產(chǎn)生進(jìn)位) 。如對(duì)上例的結(jié)果進(jìn)行加6: 0001 0001 11 + 0000 0110 6 0000 0111 17 0000 1111- 1 0000 011128例2:有兩個(gè)字符串形式的十進(jìn)制數(shù),2658和 3619,求二者之和。即2658+3619=? 由題意知,被加數(shù)和加數(shù)的每一位都以ASC

17、IIASCII碼碼形式存放在內(nèi)存中。假定二數(shù)在內(nèi)存中均是低位在前,高位在后,另留出5個(gè)單元存放相加的結(jié)果。內(nèi)存中數(shù)據(jù)存放形式見(jiàn)下頁(yè)圖。2936H32H39H31HSTRING1STRING238H35H36H33H被加數(shù)加數(shù)數(shù)據(jù)段85629163SUM結(jié)果.30程序段為: LEA SI,STRING1 ;STRING1偏移地址送SI LEA DI,STRING2 ;STRING2偏移地址送DI LEA BX,SUM ;SUM偏移地址送BX MOV CX,4 ;循環(huán)4次 CLC ;清進(jìn)位標(biāo)志AGAIN:MOV AL,SI ADC AL,DI ;帶進(jìn)位加 AAA ;未壓縮BCD碼調(diào)正 MOV BX

18、,AL ;結(jié)果存入SUM INC SI ;調(diào)整指針 INC DI INC BX DEC CX ;循環(huán)計(jì)數(shù)器減1 JNZ AGAIN ;若未處理完,則轉(zhuǎn)AGAIN31 思考題: 1.根據(jù)程序?qū)懗鼋Y(jié)果SUM的值。 2.若最高位有進(jìn)位,程序如何修改? 3.從此例不難看出,用AAA指令也可對(duì)字符串形式的十進(jìn)制數(shù)加法進(jìn)行調(diào)整,所以它又被稱(chēng)為加法的ASCII調(diào)正指令。為什么AAA指令既可對(duì)非壓縮BCD碼加法進(jìn)行調(diào)整,也可對(duì)ASCII碼形式的十進(jìn)制數(shù)進(jìn)行調(diào)整?(注意AAA指令的第步)32( (2 2) )壓縮壓縮BCDBCD碼加法調(diào)整碼加法調(diào)整DAAl兩個(gè)壓縮BCD碼相加結(jié)果在AL中,通過(guò)DAA調(diào)整得到一個(gè)

19、正確的壓縮BCD碼.l指令操作(調(diào)整方法): 若AL的低4位9AF=1 則(AL)(AL)+6,AF1 若AL的高4位9CF=1 則(AL)(AL)+60H,CF1l除OF外,DAA指令影響所有其它標(biāo)志。lDAADAA指令應(yīng)緊跟在指令應(yīng)緊跟在ADDADD或或ADCADC指令之后。指令之后。33例: 0100 1000 48H MOV AL,48H + 0111 0100 74H MOV BL,74H 1011 1100 BCH ADD AL,BL + 0110 0110 66H DAA 1 0010 0010 1 22H (進(jìn)位) (進(jìn)位) 執(zhí)行ADD后,(AL)=BCH,高4位低4位均大于9

20、,故DAA指令執(zhí)行加66H調(diào)整,最后結(jié)果為: (AL)=22H, CF=1, AF=134( (1)1)非壓縮非壓縮BCDBCD碼減法的十進(jìn)制調(diào)正指令碼減法的十進(jìn)制調(diào)正指令A(yù)ASAAS 對(duì)AL中由兩個(gè)非壓縮的BCD碼相減的結(jié)果進(jìn)行調(diào)整。調(diào)整操作為: 若AL的低4位9或AF=1,則: AL(AL)-6,AH(AH)-1,AF1 AL(AL)0FH CFAF 否則:AL(AL)0FH2)2)減法的十進(jìn)制調(diào)整指令減法的十進(jìn)制調(diào)整指令35舉例:16-8=? MOV AX,0106H 0000 0110 06 MOV BL,08H - 0000 1000 - 08 SUB AL,BL 1111 1110

21、 FE AAS - 0000 0110 - 06 1111 1000 F8 0000 1111 0F 0000 1000 08結(jié)果為:(AL)=08H,(AH)=0,CF=AF=136( (2)2)壓縮壓縮BCDBCD碼減法的十進(jìn)制調(diào)正指令碼減法的十進(jìn)制調(diào)正指令DASDAS 對(duì)AL中由兩個(gè)壓縮BCD碼相減的結(jié)果進(jìn)行調(diào)整。調(diào)整操作為: 若AL的低4位9AF=1,則: AL(AL)-6, 且AF1 若AL的高4位9CF=1,則: AL(AL)-60H,且CF1 DAS對(duì)OF無(wú)定義,但影響其余標(biāo)志位。DAS指令要求跟在減法指令之后。373) 3) 乘法的十進(jìn)制調(diào)正指令乘法的十進(jìn)制調(diào)正指令A(yù)AM 對(duì)AX中由兩個(gè)非壓縮BCD碼相乘的結(jié)果進(jìn)行調(diào)整。調(diào)整操作為: (AL)/0AH, (AH)商,(AL)余數(shù)隱含的操作寄存器為AL和AH;AAM跟在MUL指令之后使用;影響標(biāo)志位PF、SF、Z

溫馨提示

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

評(píng)論

0/150

提交評(píng)論