算術(shù)運(yùn)算類課件_第1頁
算術(shù)運(yùn)算類課件_第2頁
算術(shù)運(yùn)算類課件_第3頁
算術(shù)運(yùn)算類課件_第4頁
算術(shù)運(yùn)算類課件_第5頁
已閱讀5頁,還剩55頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、6.2 算術(shù)運(yùn)算類加法指令減法指令乘法指令除法指令符號擴(kuò)展6.1 狀態(tài)標(biāo)志CFOFZFSFPF注意:二進(jìn)制數(shù)運(yùn)算!1. 進(jìn)位標(biāo)志CF(Carry Flag)當(dāng)運(yùn)算結(jié)果的最高有效位有進(jìn)位(加法)或借位(減法)時,進(jìn)位標(biāo)志置1,即CF = 1;否則CF = 0。3AH + 7CHB6H,沒有進(jìn)位:CF = 0AAH + 7CH(1)26H,有進(jìn)位:CF = 12. 零標(biāo)志ZF(Zero Flag)若運(yùn)算結(jié)果為0,則ZF = 1;否則ZF = 03AH + 7CHB6H,結(jié)果不是0:ZF = 084H + 7CH(1)00H,結(jié)果是0:ZF = 1 注意:ZF為1表示的結(jié)果是03. 符號標(biāo)志SF(S

2、ign Flag)運(yùn)算結(jié)果最高位為1,則SF = 1;否則SF = 03AH + 7CHB6H=1011 0110B,最高位D71:SF = 184H + 7CH(1)00H=0000 0000B,最高位D70:SF = 0 有符號數(shù)據(jù)用最高有效位表示數(shù)據(jù)的符號所以,最高有效位就是符號標(biāo)志的狀態(tài)奇偶標(biāo)志PF(Parity Flag)當(dāng)運(yùn)算結(jié)果最低字節(jié)中“1”的個數(shù)為零或偶數(shù)時,PF = 1;否則PF = 03AH + 7CHB6H10110110B結(jié)果中有5個1,是奇數(shù):PF = 0 PF標(biāo)志僅反映最低8位中“1”的個數(shù)是偶或奇,即使是進(jìn)行16位字操作5. 溢出標(biāo)志OF(Overflow Fl

3、ag)若算術(shù)運(yùn)算的結(jié)果有溢出,則OF1;否則 OF03AH + 7CHB6H=182 ,產(chǎn)生溢出:OF = 1AAH + 7CH(1)26H=38,沒有溢出:OF = 0什么是溢出處理器內(nèi)部以補(bǔ)碼表示有符號數(shù)8位表達(dá)的整數(shù)范圍是:12712816位表達(dá)的范圍是:3276732768如果運(yùn)算結(jié)果超出這個范圍,就產(chǎn)生了溢出有溢出,說明有符號數(shù)的運(yùn)算結(jié)果不正確n位2進(jìn)制數(shù)可表示的無符號數(shù)范圍:0-2n-1n位2進(jìn)制補(bǔ)碼表示的帶符號數(shù)范圍:- 2n-1- 2n-1-1 從十進(jìn)制的角度來判斷,若帶符號數(shù)的運(yùn)算結(jié)果超出了補(bǔ)碼表示的范圍,則OF=1,否則OF=0。n位二進(jìn)制帶符號數(shù)的補(bǔ)碼表示范圍為-2n-1

4、-2n-1-1。從二進(jìn)制的角度來判斷,若兩個數(shù)同號,而相加結(jié)果與之異號,或者兩個數(shù)異號,相減結(jié)果與被減數(shù)符號相反,則OF=1;其他情況OF=0。5. 溢出標(biāo)志OF(Overflow Flag)例6.13(1) 0000 0110B+ 0000 1001B 0000 1111B CF=0,OF=0(6+9=15),ZF=0,SF=0,PF=1例6.13例6.13(2) 0000 1101B+ 0111 1001B 1000 0110BCF=0,OF=1(13+121=134),ZF=0,SF=1,PF=0例6.13例6.13(3) 0000 1001B- 0000 0110B 0000 0011

5、B CF=0,OF=0(9-6=3),ZF=0,SF=0,PF=1例6.13(3)例6.13(4) 1000 0000B- 0000 0001B 0111 1111B CF=0,OF=1(-128-1=-129),ZF=0,SF=0,PF=0 例6.13(4)算術(shù)運(yùn)算類指令四則運(yùn)算是計算機(jī)經(jīng)常進(jìn)行的一種操作。算術(shù)運(yùn)算指令實(shí)現(xiàn)二進(jìn)制(和十進(jìn)制)數(shù)據(jù)的四則運(yùn)算請注意算術(shù)運(yùn)算類指令對標(biāo)志的影響掌握:ADD/ADC/INC、SUB/SBB/DEC/ NEG/CMP熟悉:MUL/IMUL、DIV/IDIV理解:CBW/CWD6.2.2 加法運(yùn)算ADD指令A(yù)DC指令I(lǐng)NC指令 1. 加法指令A(yù)DDADD指

6、令的格式 ADD Dest,Src ;DestDest+Src 功能:源操作數(shù)Src和目的操作數(shù)Dest相加,結(jié)果送到Dest。 語法格式 ADD Reg/Mem,Reg/Mem/Imm例6.14:加法運(yùn)算mov al,0fbh;al=0fbhadd al,07h;al=02hmov word ptr 200h,4652h;200h=4652hmov bx,1feh;bx=1fehadd al,bl;al=00hADD例6.14:加法運(yùn)算ADD2. 帶進(jìn)位加法指令A(yù)DCADC指令的格式 ADC Dest,Src ;DestDest+Src+CF 功能:源操作數(shù)Src、目的操作數(shù)Dest以及CF

7、相加,結(jié)果送到Dest。 語法格式 ADC Reg/Mem,Reg/Mem/Imm,同ADD對標(biāo)志位的影響:同ADD例6.15 雙字加法mov ax,4652h;ax=4652hadd ax,0f0f0h; 4652h+0f0f0h ;ax=3742h,CF=1mov dx,0234h;dx=0234hadc dx,0f0f0h;dx=f325h,CF=0;DX.AX0234 4652HF0F0 F0F0HF325 3742HADC例6.15 雙字加法ADC例6.15 雙字加法ADC3. 增量指令I(lǐng)NC(increment)INC指令的格式 INC Dest ;DestDest+1 功能:將目

8、的操作數(shù)Dest加1,結(jié)果送到Dest。 語法格式 INC Reg/Mem對標(biāo)志位的影響:不影響CF,對其他狀態(tài)標(biāo)志位的影響同ADD。inc bxinc byte ptr bx例6.16INC6.2.3 減法運(yùn)算SUB指令SBB指令DEC指令 NEG指令CMP指令6.2.3 減法指令1. 減法指令SUBSUB指令的格式 SUB Dest,Src ;DestDest-Src 功能:目的操作數(shù)Dest減去源操作數(shù)Src及CF,結(jié)果送到Dest。 語法格式 SUB Reg/Mem,Reg/Mem/Imm對標(biāo)志位的影響:按狀態(tài)標(biāo)志的定義設(shè)置CF、OF、SF和ZF。例6.17mov al,0fbh;al

9、=0fbhsub al,07h; 0fbh-07h ;al=0f4h,CF0mov word ptr 200h,4652h;200h=4652hmov bx,1feh;bx=1fehsub al,bl;al=0f6hsub word ptr bx+2,0f0f0h;200h=5562h,CF1SUB例6.17SUB例6.17SUB2. 帶借位減法指令SBBSBB指令的格式 SBB Dest,Src ;DestDest-Src-CF 功能:目的操作數(shù)Dest減去源操作數(shù)Src及CF,結(jié)果送到Dest。 語法格式 SBB Reg/Mem,Reg/Mem/Imm,同SUB對標(biāo)志位的影響:同SUB例6

10、.18:雙字減法mov ax,4652h;ax=4652hsub ax,0f0f0h;4652h-0f0f0h ;ax=5562h,CF=1mov dx,0234h;dx=0234hsbb dx,0f0f0h;0234h-0f0f0h-CF ;dx=1143h,CF=1;DX.AX0234 4652HF0F0 F0F0H1143 5562HSBB例6.18:雙字減法SBB3. 減量指令DEC(decrement)DEC指令的格式 DEC Dest ;DestDest-1 功能:目的操作數(shù)Dest減1,結(jié)果送到Dest。 語法格式 DEC Reg/Mem對標(biāo)志位的影響:不影響CF,其他同SUB。

11、dec cxdec word ptr si INC指令和DEC指令都是單操作數(shù)指令 主要用于對計數(shù)器和地址指針的調(diào)整3. 減量指令DEC(decrement)例6.194. 求補(bǔ)指令NEG(negative)NEG指令的格式 NEG Dest ;Dest0-Dest 功能:求補(bǔ)就是求相反數(shù)。 語法格式 DEC Reg/Mem對標(biāo)志位的影響:以減法0-Dest的方式判斷標(biāo)志位。例6.20:求補(bǔ)運(yùn)算mov ax,0ff64hneg al ;0000 0000-0110 0100=1001 1100;al=9ch,OF=0、SF=1、ZF=0、PF=1、CF=1NEG例6.20:求補(bǔ)運(yùn)算NEG5.

12、比較指令CMP(compare)CMP指令的格式 CMP Dest,Src ;Dest-Src 功能:目的操作數(shù)Dest減去源操作數(shù)Src,不將結(jié)果送到Dest。 語法格式 CMP Reg/Mem,Reg/Mem/Imm,同SUB對標(biāo)志位的影響:同SUB例6.21:比較AL與64hcmp al,64;al-64hjb below;al64,跳轉(zhuǎn)到below執(zhí)行sub al, 64;al64,alal-64h below:. 執(zhí)行比較指令之后,可以根據(jù)標(biāo)志判斷兩個數(shù)是否相等、大小關(guān)系等CMP例6.21:比較AL與64hCMP 乘法指令MUL r8/m8;無符號字節(jié)乘法;AXALr8/m8MUL

13、r16/m16;無符號字乘法;DX.AXAXr16/m16IMUL r8/m8;有符號字節(jié)乘法;AXALr8/m8IMUL r16/m16;有符號字乘法;DX.AXAXr16/m16乘法指令的功能乘法指令分無符號和有符號乘法指令乘法指令的源操作數(shù)顯式給出,隱含使用另一個操作數(shù)AX和DX字節(jié)量相乘:AL與r8/m8相乘,得到16位的結(jié)果,存入AX字量相乘:AX與r16/m16相乘,得到32位的結(jié)果,其高字存入DX,低字存入AX乘法指令利用OF和CF判斷乘積的高一半是否具有有效數(shù)值第 2 章乘法指令對標(biāo)志的影響乘法指令如下影響OF和CF標(biāo)志:MUL指令若乘積的高一半(AH或DX)為0,則OF=CF

14、=0;否則OF=CF=1IMUL指令若乘積的高一半是低一半的符號擴(kuò)展,則OF=CF=0;否則均為1乘法指令對其他狀態(tài)標(biāo)志沒有定義 對標(biāo)志沒有定義:指令執(zhí)行后這些標(biāo)志是任意的、不可預(yù)測(就是誰也不知道是0還是1) 對標(biāo)志沒有影響:指令執(zhí)行不改變標(biāo)志狀態(tài)第 2 章例6.22:乘法運(yùn)算mov al,0b4h;al=b4h=180mov bl,11h;bl=11h=17mul bl ;ax=Obf4h=3060 =0000 1011 1111 0100B;OF=CF=1,AX高8位不為0mov al,0b4h;al=b4h=76mov bl,11h;bl=11h=17imul bl;ax=faf4h=

15、1111 1010 1111 0100B ;=1292;OF=CF=1,AX高8位含有效數(shù)字例6.22:乘法運(yùn)算 除法指令DIV r8/m8;無符號字節(jié)除法:ALAXr8/m8的商,AhAXr8/m8的余數(shù)DIV r16/m16;無符號字除法:;AXDX.AXr16/m16的商,DXDX.AXr16/m16的余數(shù)IDIV r8/m8;有符號字節(jié)除法:ALAXr8/m8的商,AhAXr8/m8的余數(shù)IDIV r16/m16;有符號字除法:;AXDX.AXr16/m16的商,DXDX.AXr16/m16的余數(shù)除法指令的功能除法指令分無符號和有符號除法指令除法指令的除數(shù)顯式給出,隱含使用另一個操作數(shù)

16、AX和DX作為被除數(shù)字節(jié)量除法:AX除以r8/m8,8位商存入AL,8位余數(shù)存入AH字量除法:DX.AX除以r16/m16,16位商存入AX,16位余數(shù)存入DX除法指令對標(biāo)志沒有定義除法指令會產(chǎn)生結(jié)果溢出除法錯中斷當(dāng)被除數(shù)遠(yuǎn)大于除數(shù)時,所得的商就有可能超出它所能表達(dá)的范圍。如果存放商的寄存器AL/AX不能表達(dá),便產(chǎn)生溢出除數(shù)為0,便溢出例6.25:除法運(yùn)算mov ax,0400;ax=400h=1024mov bl,0b4;bl=b4h=180div bl;商al05h5;余數(shù)ah7ch124mov ax,0400;ax=400h=1024mov bl,0b4;bl=b4h=76idiv bl

17、;商alf3h13;余數(shù)ah24h36例6.25:除法運(yùn)算 符號擴(kuò)展指令CBW;AL的符號擴(kuò)展至AH;如AL的最高有效位是0,則AH00;AL的最高有效位為1,則AHFFH。AL不變CWD;AX的符號擴(kuò)展至DX;如AX的最高有效位是0,則DX00;AX的最高有效位為1,則DXFFFFH。AX不變什么是符號擴(kuò)展符號擴(kuò)展指令常用于獲得倍長的數(shù)據(jù)符號擴(kuò)展的概念符號擴(kuò)展是指用一個操作數(shù)的符號位(即最高位)形成另一個操作數(shù),后一個操作數(shù)的各位是全0(正數(shù))或全1(負(fù)數(shù))。符號擴(kuò)展不改變數(shù)據(jù)大小對于數(shù)據(jù)64H(表示數(shù)據(jù)100),其最高位D7為0(0110 0100),符號擴(kuò)展后高8位都是0,成為0064H(仍表示數(shù)據(jù)100)對于數(shù)據(jù)FF00H(表示有符號數(shù)-256),其最高位D15為1,符號擴(kuò)展后高16位都是1,成為FFFF

溫馨提示

  • 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

提交評論