![三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī)應(yīng)用基礎(chǔ)特點(diǎn)_第1頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-7/12/46cde3d3-0968-4ab8-9caa-9b5c9bf176dd/46cde3d3-0968-4ab8-9caa-9b5c9bf176dd1.gif)
![三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī)應(yīng)用基礎(chǔ)特點(diǎn)_第2頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-7/12/46cde3d3-0968-4ab8-9caa-9b5c9bf176dd/46cde3d3-0968-4ab8-9caa-9b5c9bf176dd2.gif)
![三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī)應(yīng)用基礎(chǔ)特點(diǎn)_第3頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-7/12/46cde3d3-0968-4ab8-9caa-9b5c9bf176dd/46cde3d3-0968-4ab8-9caa-9b5c9bf176dd3.gif)
![三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī)應(yīng)用基礎(chǔ)特點(diǎn)_第4頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-7/12/46cde3d3-0968-4ab8-9caa-9b5c9bf176dd/46cde3d3-0968-4ab8-9caa-9b5c9bf176dd4.gif)
![三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī)應(yīng)用基礎(chǔ)特點(diǎn)_第5頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-7/12/46cde3d3-0968-4ab8-9caa-9b5c9bf176dd/46cde3d3-0968-4ab8-9caa-9b5c9bf176dd5.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 1 三三. 算術(shù)運(yùn)算指令算術(shù)運(yùn)算指令 二二進(jìn)進(jìn)制制運(yùn)運(yùn)算算十十進(jìn)進(jìn)制制調(diào)調(diào)整整 加加 ADD, ADC, INC AAA, DAA 減減 SUB, SBB, DEC, NEG, CMP AAS, DAS 乘乘 MUL, IMUL AAM 除除 DIV, IDIV AAD 符符號(hào)號(hào)擴(kuò)擴(kuò)展展指指令令: CBW、CWD 指令分類:指令分類: 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 2 特點(diǎn):特點(diǎn): l 帶符號(hào)數(shù)用補(bǔ)碼表示帶符號(hào)數(shù)用補(bǔ)碼表示 如如 MOV AX, -1 等價(jià)于等價(jià)于 MOV AX, 0FFFFh l 對(duì)加、減運(yùn)算,不區(qū)分無(wú)符號(hào)數(shù)、帶符
2、號(hào)數(shù)對(duì)加、減運(yùn)算,不區(qū)分無(wú)符號(hào)數(shù)、帶符號(hào)數(shù) 對(duì)乘、除運(yùn)算,區(qū)分無(wú)符號(hào)數(shù)、帶符號(hào)數(shù)對(duì)乘、除運(yùn)算,區(qū)分無(wú)符號(hào)數(shù)、帶符號(hào)數(shù) l 可進(jìn)行字節(jié)或字操作可進(jìn)行字節(jié)或字操作 l 影響狀態(tài)標(biāo)志影響狀態(tài)標(biāo)志 l十進(jìn)制運(yùn)算方法十進(jìn)制運(yùn)算方法 當(dāng)數(shù)據(jù)用壓縮或非壓縮當(dāng)數(shù)據(jù)用壓縮或非壓縮BCD碼表示時(shí),碼表示時(shí), 為使運(yùn)算的結(jié)果仍為為使運(yùn)算的結(jié)果仍為BCD碼表示,需對(duì)結(jié)果進(jìn)行調(diào)整。碼表示,需對(duì)結(jié)果進(jìn)行調(diào)整。 十進(jìn)制運(yùn)算十進(jìn)制運(yùn)算 = 二進(jìn)制運(yùn)算二進(jìn)制運(yùn)算 + 十進(jìn)制調(diào)整十進(jìn)制調(diào)整 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 3 1. 加法運(yùn)算指令加法運(yùn)算指令 指指令令格格式式執(zhí)執(zhí) 行行 操操 作作 ADD dst,
3、src (dst) (dst) + (src) ADC dst, src (dst) (dst) + (src) + CF INC oprd (oprd) (oprd) + 1 l ADD、ADC為雙操作數(shù)指令為雙操作數(shù)指令 l INC為單操作數(shù)指令為單操作數(shù)指令 l 除除INC指令不影響指令不影響CF外,其余指令外,其余指令6個(gè)狀態(tài)標(biāo)志均據(jù)結(jié)果個(gè)狀態(tài)標(biāo)志均據(jù)結(jié)果 置位置位 lADC帶進(jìn)位加法,帶進(jìn)位加法,實(shí)現(xiàn)字以上運(yùn)算(進(jìn)位是上條指令運(yùn)算的進(jìn)位)實(shí)現(xiàn)字以上運(yùn)算(進(jìn)位是上條指令運(yùn)算的進(jìn)位) OF DF IF TF SF ZFAFPFCF 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 4 CFA
4、1H CFA1H 1100 1111 1010 00011100 1111 1010 0001 + 62A0H + 0110 0010 1010 0000 + 62A0H + 0110 0010 1010 0000 111 1 1 1 1111 1 111 1 1 1 1111 1 3241H 0011 0010 0100 0001 3241H 0011 0010 0100 0001 例例1 加法指令加法指令A(yù)DD: 編程完成編程完成 CFA1H + 62A0H MOV DX,0CFA1H ADD DX,62A0H 執(zhí)行后執(zhí)行后: (DX)=3241H CF=1,OF=0,SF=0, ZF=0
5、 (注意:(注意:CF和和OF的判斷方法的判斷方法) 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 5 , 8位帶符號(hào)數(shù)相加,和超出范圍(位帶符號(hào)數(shù)相加,和超出范圍(128127), 16位帶符號(hào)數(shù)相加,和超出范圍位帶符號(hào)數(shù)相加,和超出范圍(-32768+32767); 加法:兩個(gè)正數(shù)相加,結(jié)果為負(fù);或兩個(gè)負(fù)數(shù)相加,加法:兩個(gè)正數(shù)相加,結(jié)果為負(fù);或兩個(gè)負(fù)數(shù)相加, 結(jié)果為負(fù)。結(jié)果為負(fù)。 ( 兩個(gè)異號(hào)數(shù)相加不可能溢出)兩個(gè)異號(hào)數(shù)相加不可能溢出) 減法:減法: 兩個(gè)異號(hào)數(shù)相減,結(jié)果與減數(shù)相同。兩個(gè)異號(hào)數(shù)相減,結(jié)果與減數(shù)相同。 ( 兩個(gè)同號(hào)數(shù)相加不可能溢出)兩個(gè)同號(hào)數(shù)相加不可能溢出) 運(yùn)算結(jié)果錯(cuò)誤。運(yùn)
6、算結(jié)果錯(cuò)誤。 , 8位無(wú)符號(hào)數(shù)相加,和超過(guò)位無(wú)符號(hào)數(shù)相加,和超過(guò)255, 16位無(wú)符號(hào)數(shù)相加,和超過(guò)位無(wú)符號(hào)數(shù)相加,和超過(guò)65535。 運(yùn)算結(jié)果準(zhǔn)確運(yùn)算結(jié)果準(zhǔn)確 其他條件標(biāo)志(其他條件標(biāo)志(SF,AF,PF,ZF)根據(jù)定義設(shè)定。根據(jù)定義設(shè)定。 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 6 D:MASM DEBUG -A ;匯編指令匯編指令 1270:0100 MOV AX, CFA1 1270:0103 ADD AX, 62A0 1270:0106 -R ;執(zhí)行前查看各寄存器內(nèi)容執(zhí)行前查看各寄存器內(nèi)容 AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0
7、000 SI=0000 DI=0000 DS=1270 ES=1270 SS=1270 CS=1270 IP=0100 NV UP EI PL NZ NA PO NC 1270:0100 B8A1CF MOV AX,CFA1 -T 2 ;執(zhí)行匯編的兩條指令執(zhí)行匯編的兩條指令, 并查看執(zhí)行后的結(jié)果并查看執(zhí)行后的結(jié)果 AX=3241 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=1270 ES=1270 SS=1270 CS=1270 IP=0106 NV UP EI PL NZ NA PE CY 1270:0106 57 P
8、USH DI - OF DF IF SF ZF AF PF CF 為為0對(duì)應(yīng)對(duì)應(yīng) NV UP DI PL NZ NA PO NC 為為1對(duì)應(yīng)對(duì)應(yīng) OV DN EI NG ZR AC PE CY 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 7 三組指令執(zhí)行后的結(jié)果均為三組指令執(zhí)行后的結(jié)果均為: (AL)=0FDH, CF=0, OF=0, SF=1, ZF=0 MOV AL, 0F1H ADD AL, 0CH MOV AL, 241 ADD AL, 12 MOV AL, -15 ADD AL, 12 第一章中的例題第一章中的例題 F1 H F1 H + 0C H+ 0C H FD H FD H
9、 二進(jìn)制二進(jìn)制 運(yùn)運(yùn) 算算 241241 + 12+ 12 253 253 看看 作作 無(wú)符號(hào)數(shù)無(wú)符號(hào)數(shù) (-15-15) + 12+ 12 (-3-3) 看看 作作 帶符號(hào)數(shù)帶符號(hào)數(shù) B0 F1 04 0C 、 、 第一條第一條 指指 令令 第二條第二條 指指 令令 三組機(jī)器碼相同:三組機(jī)器碼相同: 對(duì)加、減運(yùn)算,對(duì)加、減運(yùn)算,CPU計(jì)算時(shí)不區(qū)分無(wú)符號(hào)數(shù)、帶符號(hào)數(shù)計(jì)算時(shí)不區(qū)分無(wú)符號(hào)數(shù)、帶符號(hào)數(shù) 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 8 例例2 加加 1 1 指令指令I(lǐng)NC INC : INC AL 執(zhí)行前執(zhí)行前 (AL)= FFH 執(zhí)行后執(zhí)行后: (AL)=00H CF=不變,不變,
10、OF=0,ZF=1,SF=0 FFH FFH + 01H + 01H 11 11 00H 00H 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 9 01FFH01FFH + 0001H+ 0001H 進(jìn)位進(jìn)位11 11 0200H 0200H 例例3 value 是一個(gè)字變量是一個(gè)字變量 OFFSET value = 1000H (DS)=2000H,(,(21000H)=01FFH value FF 21000H 01 執(zhí)行前執(zhí)行前 value 00 21000H 02 執(zhí)行后執(zhí)行后 執(zhí)行后:執(zhí)行后: (21000H)=0200H CF=不變,不變,OF=0,ZF=0,SF=0 注意:注意:
11、 INC value是內(nèi)存單元內(nèi)容加是內(nèi)存單元內(nèi)容加1,而非地址加,而非地址加1 INC value 或?qū)懗苫驅(qū)懗? INC value 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 10 例例4 將將buffer為首的為首的4個(gè)字節(jié)內(nèi)存內(nèi)容相加,存放在個(gè)字節(jié)內(nèi)存內(nèi)容相加,存放在AL中。中。 buffer 1A B7 C5 D6 注意若編程如下注意若編程如下, MOV CX, 4 MOV AL, 0 exit: ADD AL, buffer INC buffer DEC CX JNZ exit 不能實(shí)現(xiàn)不能實(shí)現(xiàn), 為什么?為什么? . MOV CX, 4 LEA BX, buffer MOV
12、AL, 0 exit: ADD AL, BX INC BX DEC CX JNZ exit 實(shí)現(xiàn)的是實(shí)現(xiàn)的是(1A)+(1B)+(1C)+(1D) 指令指令I(lǐng)NC buffer 將將buffer指向的內(nèi)容加指向的內(nèi)容加1, 而不是地址而不是地址buffer加加1 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 11 例例5 帶進(jìn)位加帶進(jìn)位加ADC:兩雙字相加:兩雙字相加 0002F365H + 0005 E024 H = ? MOV AX,0F365H ADD AX,0E024H MOV BX,0002H ADC BX,0005H 0002 F365 H 0002 F365 H + + 0005
13、 E024 H0005 E024 H 進(jìn)位進(jìn)位 0008 D389 H0008 D389 H 結(jié)果存放在結(jié)果存放在: 0008 D389 (BX) (AX) 執(zhí)行完執(zhí)行完、:(AX)= D389H CF=1, OF=0, SF=1, ZF=0 執(zhí)行完執(zhí)行完、:(BX)= 0008H CF=0, OF=0, SF=0, ZF=0 分析:分析: 8086/8088只能按字節(jié)或字相加。只能按字節(jié)或字相加。 位數(shù)在字以上的操作數(shù),先加低位,再加高位,位數(shù)在字以上的操作數(shù),先加低位,再加高位, 加高位時(shí)加入從低位產(chǎn)生的進(jìn)位。加高位時(shí)加入從低位產(chǎn)生的進(jìn)位。 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 1
14、2 用途舉例(自學(xué)用途舉例(自學(xué)P12-21) 計(jì)算兩個(gè)多字節(jié)數(shù)相加計(jì)算兩個(gè)多字節(jié)數(shù)相加 3B74AC60F8H+20D59E36C1H=? 兩個(gè)多字節(jié)數(shù)存放在:兩個(gè)多字節(jié)數(shù)存放在: DATA1,DATA2的開(kāi)始單元。的開(kāi)始單元。 F8HF8H 60H60H ACHACH 74H74H 3BH3BH . C1HC1H 36H36H 9EH9EH D5HD5H 20H20H . DATA1DATA1 DATA2DATA2 流程圖流程圖 多字節(jié)數(shù)內(nèi)存存放多字節(jié)數(shù)內(nèi)存存放 開(kāi)始開(kāi)始 初始化,置循環(huán)次數(shù)CX初始化,置循環(huán)次數(shù)CX 清SI、CF清SI、CF 取一個(gè)字節(jié)加數(shù)取一個(gè)字節(jié)加數(shù) 取一個(gè)被加數(shù)字節(jié)
15、取一個(gè)被加數(shù)字節(jié) 相加送內(nèi)存相加送內(nèi)存 (SI)+1送(SI)(SI)+1送(SI) (CX)-1送(CX)(CX)-1送(CX) (CX)=?0(CX)=?0 結(jié)束結(jié)束 N N Y Y 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 13 程序:程序: MOV CX, 5 MOV SI, 0; 清清SI CLC;清;清CF LOOPER:MOV AL, DATA2SI ADC DATA1SI,AL INC SI;(SI)+1 (SI) DEC CX;(CX)-1 (CX) JNZ LOOPER;(CX) 0轉(zhuǎn)轉(zhuǎn) HLT;停機(jī);停機(jī) 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 14 : (1)
16、 什么叫什么叫叫叫 (2) (1) 帶符號(hào)數(shù)的補(bǔ)碼帶符號(hào)數(shù)的補(bǔ)碼 帶符號(hào)數(shù),補(bǔ)碼運(yùn)算能表示范圍為帶符號(hào)數(shù),補(bǔ)碼運(yùn)算能表示范圍為: -2 n-1 +2 n+1 1 如果運(yùn)算結(jié)果超出該范圍,叫補(bǔ)碼如果運(yùn)算結(jié)果超出該范圍,叫補(bǔ)碼 運(yùn)算錯(cuò)誤。運(yùn)算錯(cuò)誤。 運(yùn)算結(jié)果的最高位向更高位的運(yùn)算結(jié)果的最高位向更高位的 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 15 有進(jìn)位不一定有溢出有進(jìn)位不一定有溢出,沒(méi)有進(jìn)位不一定沒(méi)有溢出。沒(méi)有進(jìn)位不一定沒(méi)有溢出。 數(shù)的表示范圍:數(shù)的表示范圍: 8位二進(jìn)制數(shù)可以表示十進(jìn)制數(shù)的范圍:位二進(jìn)制數(shù)可以表示十進(jìn)制數(shù)的范圍: 8位帶符號(hào)十進(jìn)制數(shù)的范圍:位帶符號(hào)十進(jìn)制數(shù)的范圍:1281
17、27 8位無(wú)符號(hào)十進(jìn)制數(shù)的范圍:位無(wú)符號(hào)十進(jìn)制數(shù)的范圍:0255 16位二進(jìn)制數(shù)可以表示十進(jìn)制數(shù)的范圍位二進(jìn)制數(shù)可以表示十進(jìn)制數(shù)的范圍: 16位帶符號(hào)十進(jìn)制數(shù)的范圍:位帶符號(hào)十進(jìn)制數(shù)的范圍:3276832767 16位無(wú)符號(hào)十進(jìn)制數(shù)的范圍:位無(wú)符號(hào)十進(jìn)制數(shù)的范圍:065535 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 16 以以8位二進(jìn)制數(shù)為例分析一下數(shù)的溢出與進(jìn)位情況:位二進(jìn)制數(shù)為例分析一下數(shù)的溢出與進(jìn)位情況: 下面分下面分4種情況加以討論:種情況加以討論: (1) 帶符號(hào)數(shù)和無(wú)符號(hào)數(shù)都不溢出帶符號(hào)數(shù)和無(wú)符號(hào)數(shù)都不溢出 (2) 無(wú)符號(hào)數(shù)溢出無(wú)符號(hào)數(shù)溢出 (3) 帶符號(hào)數(shù)溢出帶符號(hào)數(shù)溢出
18、(4) 帶符號(hào)數(shù)和無(wú)符號(hào)數(shù)都溢出帶符號(hào)數(shù)和無(wú)符號(hào)數(shù)都溢出 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 17 。 二進(jìn)制數(shù)二進(jìn)制數(shù)看作無(wú)符號(hào)數(shù)看作無(wú)符號(hào)數(shù)看作帶符號(hào)數(shù)看作帶符號(hào)數(shù) 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1+ + 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 4 4 1111+ + 1515 + 4+ 4 +1 1+1 1+ + +1 5+1 5 相相 加加 標(biāo)志標(biāo)志CF=0,OF=0CF=0,OF=0CF=0CF=0OF=0OF=0 溢出溢出不溢出不溢出不溢出不溢出 不溢出不
19、溢出 同符號(hào)數(shù)相加,同符號(hào)數(shù)相加, 結(jié)果符號(hào)與其相同結(jié)果符號(hào)與其相同 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 18 二進(jìn)制數(shù)二進(jìn)制數(shù)看作無(wú)符號(hào)數(shù)看作無(wú)符號(hào)數(shù)看作帶符號(hào)數(shù)看作帶符號(hào)數(shù) 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1+ + 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 7 7 251251+ + 258258 + 7+ 7 - 5- 5+ + + 2+ 2 相相 加加 標(biāo)志標(biāo)志CF=1,OF=0CF=1,OF=0CF=1CF=1OF=0OF=0 溢出溢出無(wú)符號(hào)數(shù)溢出無(wú)符號(hào)數(shù)溢出
20、溢出溢出 結(jié)果應(yīng)為結(jié)果應(yīng)為2 2,錯(cuò),錯(cuò) 不溢出不溢出 異號(hào)數(shù)相加異號(hào)數(shù)相加 不可能有溢出不可能有溢出 CF=1CF=1 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 19 二進(jìn)制數(shù)二進(jìn)制數(shù)看作無(wú)符號(hào)數(shù)看作無(wú)符號(hào)數(shù)看作帶符號(hào)數(shù)看作帶符號(hào)數(shù) 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0+ + 1 1 0 0 0 0 0 0 0 0 1 1 0 0 1 1 9 9 124124+ + 133133 + 9+ 9 +1 2 4+1 2 4+ + +1 3 3+1 3 3 相相 加加 標(biāo)志標(biāo)志CF=0,OF=1CF=
21、0,OF=1CF=0CF=0O OF=F=1 1 溢出溢出帶符號(hào)數(shù)溢出帶符號(hào)數(shù)溢出不溢出不溢出 溢出溢出 結(jié)果為123 結(jié)果為123 結(jié)果錯(cuò)結(jié)果錯(cuò) 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 20 二進(jìn)制數(shù)二進(jìn)制數(shù)看作無(wú)符號(hào)數(shù)看作無(wú)符號(hào)數(shù)看作帶符號(hào)數(shù)看作帶符號(hào)數(shù) 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1+ + 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 135135 245245+ + 380380 121121 - 11- 11+ + 132132 相相 加加 標(biāo)志標(biāo)志CF=1,OF=
22、1CF=1,OF=1CF=1CF=1OF=1OF=1 溢出溢出無(wú)符號(hào)數(shù)溢出無(wú)符號(hào)數(shù)溢出 溢出溢出 現(xiàn)結(jié)果為現(xiàn)結(jié)果為 124,結(jié)果錯(cuò)124,結(jié)果錯(cuò) 溢出溢出 現(xiàn)結(jié)果為124,現(xiàn)結(jié)果為124, 結(jié)果錯(cuò)結(jié)果錯(cuò) CF=1CF=1 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 21 (1)帶符號(hào)數(shù))帶符號(hào)數(shù)相加相加溢出溢出 根據(jù)根據(jù)OF= 1 ?,判斷帶符號(hào)數(shù)產(chǎn)生溢出?判斷帶符號(hào)數(shù)產(chǎn)生溢出? (2)無(wú)符號(hào)數(shù))無(wú)符號(hào)數(shù)相加相加溢出溢出 根據(jù)根據(jù)CF= 1 ?,判斷無(wú)符號(hào)數(shù)產(chǎn)生溢出?判斷無(wú)符號(hào)數(shù)產(chǎn)生溢出? 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 22 指指令令格格式式執(zhí)執(zhí)行行操操作作 SUB dst,
23、 src (dst) (dst) - - (src) SBB dst, src (dst) (dst) - - (src) - - CF DEC oprd (oprd) (oprd) - - 1 NEG oprd (oprd) 0 - - (oprd) CMP oprd1, oprd2 (oprd1) - - (oprd2) 2. 減法運(yùn)算指令減法運(yùn)算指令 l SUB、SBB、 CMP為雙操作數(shù),為雙操作數(shù),DEC、NEG為單操作數(shù)為單操作數(shù) l SBB為帶進(jìn)位減法為帶進(jìn)位減法(進(jìn)位是上條指令運(yùn)算的進(jìn)位進(jìn)位是上條指令運(yùn)算的進(jìn)位)。)。 l 除除DEC不影響不影響CF標(biāo)志外,其余指令標(biāo)志外,其余
24、指令6個(gè)狀態(tài)標(biāo)志均據(jù)結(jié)果置位。個(gè)狀態(tài)標(biāo)志均據(jù)結(jié)果置位。 l NEG求補(bǔ)運(yùn)算,等價(jià)于用求補(bǔ)運(yùn)算,等價(jià)于用0減去操作數(shù)。減去操作數(shù)。 其對(duì)標(biāo)志位的影響,由其對(duì)標(biāo)志位的影響,由0減去該操作數(shù)的過(guò)程決定。減去該操作數(shù)的過(guò)程決定。 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 23 例例1 減法指令減法指令SUB:編程完成:編程完成 2D04H 3AB0H 執(zhí)行后執(zhí)行后: : (AX)=0F254H CF=1,OF=0,SF=1,ZF=0 2D04H 0010 1101 0000 01002D04H 0010 1101 0000 0100 - 3AB0H - 3AB0H - - 0011 1010 10
25、11 0000 0011 1010 1011 0000 1 1 1111 1 1 111 1 1 1111 1 1 111 F254H 1111 0010 0101 0100 F254H 1111 0010 0101 0100 MOV AX ,2D04H SUB AX ,3AB0H 借位借位 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 24 例例2 2 帶進(jìn)位減法帶進(jìn)位減法SBB: 用指令完成兩雙字相減運(yùn)算用指令完成兩雙字相減運(yùn)算 0546 7A70H - - F001 A543H MOV AX,7A70H SUB AX,A543H MOV BX,0546H SBB BX,0F001H 三算
26、術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 25 例例3 減減1指令指令DEC:value 是一個(gè)字節(jié)變量是一個(gè)字節(jié)變量 OFFSET value = 1000H (DS)=2000H,(,(21000H)=00H DEC value 執(zhí)行后:(執(zhí)行后:(21000H)=0FFH CF=不變,不變,OF=0,ZF=0,SF=1 注意:注意:DEC value 是內(nèi)存單元內(nèi)容減是內(nèi)存單元內(nèi)容減1,而非地址減,而非地址減1 00 H 00 H - 01 H - 01 H 11 11 FFH FFH 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 26 例例4 求補(bǔ)指令求補(bǔ)指令NEG: MOV AH,
27、80H NEG AH 00 H 0000 0000 B 00 H 0000 0000 B - - 80 H 80 H - - 1000 0000 B 1000 0000 B 1 1 1 1 80H 1000 0000B 80H 1000 0000B 執(zhí)行后:執(zhí)行后: (AL)=80H , CF=1,OF=1,ZF=0,SF=1 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 27 例例5:求絕對(duì)值:求絕對(duì)值(自學(xué)自學(xué)) 在內(nèi)存中,在內(nèi)存中, 從從AREA1開(kāi)始存放開(kāi)始存放 100個(gè)帶符號(hào)數(shù)。個(gè)帶符號(hào)數(shù)。 求各數(shù)的絕對(duì)值存于求各數(shù)的絕對(duì)值存于 AREA2的開(kāi)始單元。的開(kāi)始單元。 流程圖流程圖 開(kāi)始
28、開(kāi)始 初始化初始化 置源地址,置目的地址指針置源地址,置目的地址指針 置循環(huán)次數(shù)置循環(huán)次數(shù) 取一個(gè)帶符號(hào)數(shù)取一個(gè)帶符號(hào)數(shù) 負(fù)數(shù)?負(fù)數(shù)? 求補(bǔ)求補(bǔ) 送存送存 地址指針1地址指針1 循環(huán)次數(shù)1循環(huán)次數(shù)1 循環(huán)次數(shù)0?循環(huán)次數(shù)0? 結(jié)束結(jié)束 N N Y Y N N Y Y 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 28 程序:程序: LEA SI, AREA1 LEA DI, AREA2 MOV CX, 100 CHECK: MOV AL, SI OR AL, AL ;(AL)內(nèi)容不變,置標(biāo)志內(nèi)容不變,置標(biāo)志 JNS NEXT ;SF=0轉(zhuǎn)轉(zhuǎn)NEXT NEG AL ;負(fù)數(shù)求補(bǔ)負(fù)數(shù)求補(bǔ) NEXT:
29、 MOV DI, AL ;送目標(biāo);送目標(biāo) INC SI INC DI DEC CX JNZ CHECK HLT 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 29 CMP oprd1, oprd2 ; (oprd1) - (oprd2) 據(jù)據(jù)ZF判斷兩數(shù)是否相等判斷兩數(shù)是否相等 CMP A, B ZF=1 兩數(shù)相等兩數(shù)相等, A = B ; ZF=0 兩數(shù)不等兩數(shù)不等, A B 據(jù)據(jù)ZF和和CF判斷兩無(wú)符號(hào)數(shù)關(guān)系判斷兩無(wú)符號(hào)數(shù)關(guān)系 CF= 1 A低于低于B CF= 0 A高于高于或或等于等于B CF=1或或 ZF=1 A低于等于低于等于B CF=0且且 ZF=0 A高于高于B l 利用利用CM
30、P執(zhí)行后的標(biāo)志值,比較兩操作數(shù)之間的關(guān)系執(zhí)行后的標(biāo)志值,比較兩操作數(shù)之間的關(guān)系 l 比較指令比較指令CMP,進(jìn)行兩操作數(shù)相減操作,進(jìn)行兩操作數(shù)相減操作, 但只影響標(biāo)志值,不影響操作數(shù)但只影響標(biāo)志值,不影響操作數(shù)(減的結(jié)果不保存減的結(jié)果不保存) 例例6比較指令比較指令CMP: 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 30 條件轉(zhuǎn)移指令條件轉(zhuǎn)移指令判斷條件判斷條件 低于低于 JB next CF = 1 低于或等于低于或等于 JBE next CF = 1 或或 ZF = 1 高于高于 JA next CF = 0 且 且 ZF = 0 高于或等于高于或等于 JAE next CF = 0
31、CMP AX, BX ;比較比較 JAE above ;高于高于或或等于則跳轉(zhuǎn)等于則跳轉(zhuǎn) XCHG AX, BX ;低于則交換低于則交換 above: 、 例例 將將AX和和BX中較大的無(wú)符號(hào)數(shù),存于中較大的無(wú)符號(hào)數(shù),存于AX中中 比較指令常常根據(jù)比較指令常常根據(jù)條件(標(biāo)志)轉(zhuǎn)移,條件(標(biāo)志)轉(zhuǎn)移,無(wú)符號(hào)數(shù)無(wú)符號(hào)數(shù)轉(zhuǎn)移指令如下:轉(zhuǎn)移指令如下: 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 31 CMP A,B 用用ZF、SF 和和 OF判斷兩帶符號(hào)數(shù)關(guān)系判斷兩帶符號(hào)數(shù)關(guān)系 l OF=0,不溢出情況,不溢出情況, SF=0, AB SF=1, A B OF=0, SF=0 AB OF=0, SF
32、=1 A B OF=1, SF=0 A 負(fù),知負(fù),知A B 1 - 0 負(fù)負(fù) - 正正 = 正,結(jié)果正,結(jié)果SF = 0, OF=1 0 但,負(fù)但,負(fù) 正,知正,知A B l OF=1,溢出情況,溢出情況, (由符號(hào)位可決定是否溢出由符號(hào)位可決定是否溢出) 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 32 結(jié)合結(jié)合ZF,得到結(jié)論得到結(jié)論 : : SF OF 0 0 0 1 1 0 1 1 SFOF0111 或或運(yùn)運(yùn)算算:有有1則則1,全全0則則0 邏輯運(yùn)算:邏輯運(yùn)算: CMP A, B兩兩數(shù)數(shù)關(guān)關(guān)系系 SF OF = 0AB SF OF = 1A B (SF OF) ZF=1AB 思考:思考
33、: 可否只用可否只用 ZF 和和 SF 判斷兩符號(hào)數(shù)關(guān)系?判斷兩符號(hào)數(shù)關(guān)系? SF OF 0 0 0 1 1 0 1 1 SFOF0110 異異或或運(yùn)運(yùn)算算: 異異則則1,同同則則0 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 33 條件轉(zhuǎn)移指令條件轉(zhuǎn)移指令判斷條件判斷條件 小于小于 JL next SF OF = 1 小于或等于小于或等于 JLE next (SF OF)ZF=1 大于大于 JG next ( SF OF)ZF =0 大于或等于大于或等于 JGE next SF OF=0 例例 將將AX和和BX中較大的帶符號(hào)數(shù),存于中較大的帶符號(hào)數(shù),存于AX中中 CMP AX, BX ;比
34、較比較 JGE great ;大于大于或或等于則跳轉(zhuǎn)等于則跳轉(zhuǎn) XCHG AX, BX ;小于則交換小于則交換 great: 、 比較指令常常根據(jù)比較指令常常根據(jù)條件(標(biāo)志)轉(zhuǎn)移,條件(標(biāo)志)轉(zhuǎn)移,帶符號(hào)數(shù)帶符號(hào)數(shù)轉(zhuǎn)移指令如下:轉(zhuǎn)移指令如下: 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 34 CMP指令應(yīng)用舉例:指令應(yīng)用舉例: 若自若自BLOCK開(kāi)始的內(nèi)存緩沖區(qū)中,有開(kāi)始的內(nèi)存緩沖區(qū)中,有100個(gè)帶符號(hào)數(shù)。個(gè)帶符號(hào)數(shù)。 找出最大值。并存放到找出最大值。并存放到MAX單元中。單元中。 第一個(gè)數(shù)取出第一個(gè)數(shù)取出 ( AX), 取出第二個(gè)數(shù)(第二個(gè)字單元內(nèi)容)與取出第二個(gè)數(shù)(第二個(gè)字單元內(nèi)容)與(
35、AX)比較比較 : (AX)第二個(gè)數(shù),不做交換,第二個(gè)數(shù),不做交換, 否則,(第二個(gè)字單元內(nèi)容)否則,(第二個(gè)字單元內(nèi)容) (AX)。)。 再取第三個(gè)數(shù),再取第三個(gè)數(shù), 經(jīng)過(guò)經(jīng)過(guò)99次比較,在(次比較,在(AX)中得到最大數(shù)。)中得到最大數(shù)。 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 35 編程:編程: MOV BX,OFFSET BLOCK MOV AX,BX INC BX INC BX MOV CX,99 AGAIN: ;(AX) (16d(ds)+(BX)轉(zhuǎn)轉(zhuǎn)NEXT MOV AX,BX NEXT: INC BX INC BX DEC CX JNE AGAIN MOV MAX,AX;
36、MAX單元存放單元存放最大值最大值 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 36 3. 乘法指令乘法指令 指指令令格格式式執(zhí)執(zhí)行行操操作作 MUL src 若若src為為字字節(jié)節(jié)類類型型: (AX) (AL)(src) 若若src為為字字類類型型: (DX),(AX) (AX)(src) 將將被被乘乘數(shù)數(shù)、乘乘數(shù)數(shù)看看作作無(wú)無(wú)符符號(hào)號(hào)數(shù)數(shù),進(jìn)進(jìn)行行乘乘運(yùn)運(yùn)算算 乘乘的的結(jié)結(jié)果果也也為為無(wú)無(wú)帶帶符符號(hào)號(hào)數(shù)數(shù) IMUL src 執(zhí)執(zhí)行行的的操操作作與與MUL相相似似 將將被被乘乘數(shù)數(shù)、乘乘數(shù)數(shù)看看作作帶帶符符號(hào)號(hào)數(shù)數(shù), 進(jìn)進(jìn)行行乘乘運(yùn)運(yùn)算算 乘乘的的結(jié)結(jié)果果也也為為帶帶符符號(hào)號(hào)數(shù)數(shù) 無(wú)符號(hào)數(shù)
37、乘法無(wú)符號(hào)數(shù)乘法 帶符號(hào)數(shù)乘法帶符號(hào)數(shù)乘法 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 37 MUL src IMUL src l 單操作數(shù)指令單操作數(shù)指令 l 源操作數(shù)源操作數(shù)( 乘數(shù)乘數(shù) )類型決定操作類型類型決定操作類型 l 目的操作數(shù)目的操作數(shù)( 被乘數(shù)被乘數(shù)) 隱含。隱含。 字節(jié)乘字節(jié)乘AL 字乘字乘AX l 字節(jié)相乘的結(jié)果存放在字節(jié)相乘的結(jié)果存放在AX中中 字相乘的結(jié)果存放在字相乘的結(jié)果存放在DX、AX中中 l MUL 用于無(wú)符號(hào)數(shù)運(yùn)算用于無(wú)符號(hào)數(shù)運(yùn)算 IMUL 用于帶符號(hào)數(shù)運(yùn)算用于帶符號(hào)數(shù)運(yùn)算 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 38 l 影響影響CF和和OF,對(duì)其他
38、條件碼無(wú)定義(不確定),對(duì)其他條件碼無(wú)定義(不確定) (1)指令)指令 MUL 字節(jié)相乘,字節(jié)相乘,AH=0,CF=OF=0,否則,否則 CF=OF=1 字相乘,字相乘, DX=0,CF=OF=0,否則,否則 CF=OF=1 對(duì)其它條件碼不確定(無(wú)定義)。對(duì)其它條件碼不確定(無(wú)定義)。 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 39 (2)指令)指令I(lǐng)MUL 字節(jié)相乘,字節(jié)相乘,AH=0或或AH=FFH,CF=OF=0,否則,否則 CF=OF=1 字相乘,字相乘,DX=0或或DX=FFFFH,CF=OF=0,否則,否則 CF=OF=1 積的高一半為低一半的符號(hào)擴(kuò)展的含義:積的高一半為低一半
39、的符號(hào)擴(kuò)展的含義: , , 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 40 :乘法中為什么要用乘法中為什么要用MUL,IMUL 指令指令 ? 例例: : 無(wú)符號(hào)數(shù)無(wú)符號(hào)數(shù)帶符號(hào)數(shù)帶符號(hào)數(shù) (AL)=3(AL)=3 (BL)=(BL)=(-2-2) 0 0 1 10 0 1 1 1 1 1 0 1 1 1 0 0 0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 = = 2AH2AH MUL BL;MUL BL;3 3(-2)= -6(-2)= -6 結(jié)果結(jié)果2AH2AH是錯(cuò)誤是錯(cuò)誤 IMUL BL ;3IMUL BL ;3(-2)=(-6)(-2)=(-6) -2-2 求補(bǔ) 求補(bǔ)
40、= 0010 = 0010 0 0 1 10 0 1 1 0 0 1 00 0 1 0 0 0 0 0 0 1 1 0 = 60 0 0 0 0 1 1 0 = 6 00000110 00000110 求求補(bǔ)補(bǔ) 1111101011111010-6-6 補(bǔ)補(bǔ) 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 41 例例 (AL) = 0B4H,(BL) = 11H 指令中源操作數(shù)為字節(jié)類型,故是字節(jié)操作指令中源操作數(shù)為字節(jié)類型,故是字節(jié)操作 MUL BL IMUL BL 看作無(wú)符號(hào)數(shù)看作無(wú)符號(hào)數(shù) (AL) = 180D (BL) = 17D 18017 = 3060D = 0BF4H 執(zhí)行執(zhí)行MU
41、L BL后:后: (AX) = 0BF4H 看作帶符號(hào)數(shù)看作帶符號(hào)數(shù) (AL) = -76D (BL) =17D (-76)17 = -1292D = 0FAF4H 執(zhí)行執(zhí)行IMUL BL后:后: (AX) = 0FAF4H 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 42 例例 (AX)=0FFFFH,(BX)=0FFFFH 指令中源操作數(shù)為字類型,故是字操作指令中源操作數(shù)為字類型,故是字操作 MUL BX 執(zhí)行執(zhí)行MUL BX后:后: (DX) = 0FFFEH (AX) = 0001H 看作無(wú)符號(hào)數(shù)看作無(wú)符號(hào)數(shù) (AX )= (BX) = 65535 6553565535 = 4294
42、836225 = 0FFFE 0001H IMUL BX 看作帶符號(hào)數(shù)看作帶符號(hào)數(shù) (AX)= (BX)=- -1 (- -1)(- -1) = 1 = 0000 0001H 執(zhí)行執(zhí)行IMUL BX后:后: (DX) = 0000H (AX) = 0001H 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 43 4. 除法指令除法指令 指令格式指令格式執(zhí)行操作執(zhí)行操作 DIV src 無(wú)符號(hào)數(shù)除法無(wú)符號(hào)數(shù)除法 (src)為字節(jié)類型:為字節(jié)類型: (AL) (AX) / (src) 的商的商 (AH) (AX) / (src) 的余數(shù)的余數(shù) (src)為字類型:為字類型: (AX) DX) , (
43、AX) / (src) 的商的商 (DX) (DX) , (AX) / (src) 的余數(shù)的余數(shù) 將被除數(shù)、除數(shù)看作無(wú)符號(hào)數(shù),進(jìn)行除法運(yùn)算,將被除數(shù)、除數(shù)看作無(wú)符號(hào)數(shù),進(jìn)行除法運(yùn)算, 商、余數(shù)也為無(wú)符號(hào)數(shù)商、余數(shù)也為無(wú)符號(hào)數(shù) IDIV src 帶符號(hào)數(shù)除法帶符號(hào)數(shù)除法 執(zhí)行的操作與執(zhí)行的操作與 DIV相同,相同, 將被除數(shù)、除數(shù)看作帶符號(hào)數(shù),進(jìn)行除法運(yùn)算將被除數(shù)、除數(shù)看作帶符號(hào)數(shù),進(jìn)行除法運(yùn)算 商、余數(shù)也為帶符號(hào)數(shù),余數(shù)的符號(hào)與被除數(shù)同商、余數(shù)也為帶符號(hào)數(shù),余數(shù)的符號(hào)與被除數(shù)同 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 44 l 單操作數(shù)指令單操作數(shù)指令 l 源操作數(shù)源操作數(shù)(除數(shù)除數(shù))類
44、型類型 決定指令操作類型決定指令操作類型 l 目的操作數(shù)目的操作數(shù)(被除數(shù)被除數(shù))隱含隱含 字節(jié)操作在字節(jié)操作在AX中;字操作在中;字操作在DX, AX中中 l 除的結(jié)果,字節(jié)操作在除的結(jié)果,字節(jié)操作在AX中;字操作在中;字操作在DX, AX中中 l 除法指令對(duì)所有條件碼位均無(wú)定義除法指令對(duì)所有條件碼位均無(wú)定義 l 下列情況自動(dòng)轉(zhuǎn)入下列情況自動(dòng)轉(zhuǎn)入 0 中斷處理:中斷處理: (1) 除數(shù)為除數(shù)為0 (2) 字節(jié)操作,商的范圍超出字節(jié)范圍字節(jié)操作,商的范圍超出字節(jié)范圍 字操作時(shí),商的范圍超出字范圍字操作時(shí),商的范圍超出字范圍 例如例如:被除數(shù)被除數(shù) 除數(shù)除數(shù) 商商余數(shù)余數(shù) 9 2 4 1 9-
45、2-4 1 -9 2-4- 1 -9- 2 4- 1 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 45 除法指令舉例除法指令舉例 例例 (AX)=0501H,(BL)=0C6H (1) DIV BL (2) IDIV BL 看作無(wú)符號(hào)數(shù)看作無(wú)符號(hào)數(shù) 看作帶符號(hào)數(shù)看作帶符號(hào)數(shù) (AX) = 1281D (AX) = 1281D (BL) = 198D (BL) = -58D 1281/198 1281/ (-58) 商商= 6 D 商商= -22D=0EAH 余數(shù)余數(shù)=93D=5D H 余數(shù)余數(shù)=5D 執(zhí)行執(zhí)行DIV BL后:后: 執(zhí)行執(zhí)行IDIV BL后:后: (AX) = 5D06H (A
46、X) = 05EAH 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 46 5. 符號(hào)擴(kuò)展指令符號(hào)擴(kuò)展指令 指令格式指令格式執(zhí)行操作執(zhí)行操作 CBW 將 將 (AL) 的符號(hào)擴(kuò)展到的符號(hào)擴(kuò)展到AH 中中 (AL)的的 D7=0,(AH)=00H D7=1 ,(AH)=FFH CWD 將將 (AX) 的符號(hào)擴(kuò)展到的符號(hào)擴(kuò)展到 DX 中中 (AX)的的 D15=0,(DX)=0000H D15=1 , ,(DX) =FFFFH 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 47 l 無(wú)操作數(shù)格式無(wú)操作數(shù)格式 l 操作數(shù)隱含操作數(shù)隱含 字節(jié)操作,源在字節(jié)操作,源在AL,目的在,目的在AX 字字 操操
47、作,源在作,源在AX,目的在,目的在DX,AX l 對(duì)條件碼無(wú)影響對(duì)條件碼無(wú)影響 l 符號(hào)擴(kuò)展指令應(yīng)對(duì)帶符號(hào)數(shù)操作符號(hào)擴(kuò)展指令應(yīng)對(duì)帶符號(hào)數(shù)操作 l 擴(kuò)展后,表示的數(shù)值大小不變,只是位數(shù)發(fā)生變化擴(kuò)展后,表示的數(shù)值大小不變,只是位數(shù)發(fā)生變化 8位擴(kuò)展到位擴(kuò)展到16位位 , 16位擴(kuò)展到位擴(kuò)展到32位位 l 應(yīng)用場(chǎng)合:應(yīng)用場(chǎng)合: 除法指令中,使被除數(shù)滿足要求。除法指令中,使被除數(shù)滿足要求。 字節(jié)操作,被除數(shù)為字節(jié)操作,被除數(shù)為16位位 字操作,被除數(shù)為字操作,被除數(shù)為32位位 加減運(yùn)算中,使兩操作數(shù)類型一致加減運(yùn)算中,使兩操作數(shù)類型一致 如:字與字節(jié)相加、減時(shí)如:字與字節(jié)相加、減時(shí) 如:雙字與字之間
48、的相加、減時(shí)如:雙字與字之間的相加、減時(shí) 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 48 符號(hào)擴(kuò)展指令舉例符號(hào)擴(kuò)展指令舉例 例例 CBW 執(zhí)行前執(zhí)行前 (AL)=01H,(AH)=0FFH 執(zhí)行后執(zhí)行后 (AL)=01H,(AH)=00H 例例 CWD 執(zhí)行前執(zhí)行前 (AX)=0FF00H,(DX)=0011H 執(zhí)行后執(zhí)行后 (AX)=0FF00H,(DX)=0FFFFH 例例 (AL)=0FFH,將其內(nèi)容擴(kuò)展至,將其內(nèi)容擴(kuò)展至(AX)中中 看作無(wú)符號(hào)數(shù)為看作無(wú)符號(hào)數(shù)為255, 若用若用MOV AH,0H (AX)=00FFH=255D 若用若用CBW (AX)=0FFFFH=65535原
49、數(shù)原數(shù) 故,對(duì)無(wú)符號(hào)數(shù)的擴(kuò)展不能用符號(hào)擴(kuò)展指令故,對(duì)無(wú)符號(hào)數(shù)的擴(kuò)展不能用符號(hào)擴(kuò)展指令 對(duì)無(wú)符號(hào)數(shù)的擴(kuò)展,直接給高位賦對(duì)無(wú)符號(hào)數(shù)的擴(kuò)展,直接給高位賦 0。 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 49 十進(jìn)制數(shù)碼十進(jìn)制數(shù)碼01234 8421 BCD 碼碼00000001001000110100 十進(jìn)制數(shù)碼十進(jìn)制數(shù)碼56789 8421 BCD 碼碼01010110011110001001 l 用二進(jìn)制編碼表示十進(jìn)制數(shù)用二進(jìn)制編碼表示十進(jìn)制數(shù)BCD碼(碼( Binary Coded Decimal ) l 常用常用8421 BCD碼碼, 與十進(jìn)制數(shù)碼對(duì)應(yīng)關(guān)系:與十進(jìn)制數(shù)碼對(duì)應(yīng)關(guān)系: 例例
50、48的的BCD碼為碼為 ( 0100 1000)BCD 前面提到的所有算術(shù)運(yùn)算指令都是二進(jìn)制的運(yùn)算指令,但人們常用前面提到的所有算術(shù)運(yùn)算指令都是二進(jìn)制的運(yùn)算指令,但人們常用 的是十進(jìn)制的是十進(jìn)制. . 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 50 根據(jù)在內(nèi)存的存放形式,分壓縮根據(jù)在內(nèi)存的存放形式,分壓縮BCD碼和非壓縮碼和非壓縮 BCD碼碼 (Packed BCD format) ,一字節(jié)存放,一字節(jié)存放2個(gè)個(gè)BCD碼。碼。 整個(gè)十進(jìn)制數(shù)形式為一個(gè)順序的整個(gè)十進(jìn)制數(shù)形式為一個(gè)順序的4位為一組的數(shù)串。位為一組的數(shù)串。 例:例:9502d 的壓縮的壓縮BCD碼應(yīng)表示為:碼應(yīng)表示為: 9 5
51、0 2 (Unpacked BCD format) 一字節(jié)存放一字節(jié)存放1個(gè)個(gè)BCD碼。碼。 8位中的低位中的低4位表示位表示8421的的BCD碼,碼,。 例:例:9502d的非壓縮的非壓縮BCD碼則表示為:碼則表示為: 9 5 0 2 1 1 0 0 0 0 1 10 0 1 1 0 0 1 10 0 0 0 0 0 0 00 0 0 0 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 0 0 1 10 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 51 數(shù)字的數(shù)字的ASCII的高的高4位位0011無(wú)意義;無(wú)意義;
52、低低4位是以位是以8421碼形式表示的十進(jìn)制數(shù)位。碼形式表示的十進(jìn)制數(shù)位。 符合非壓縮符合非壓縮BCD碼高碼高4位無(wú)意義的規(guī)定。位無(wú)意義的規(guī)定。 2的的ASCII碼:碼: 高高4位位0011無(wú)意義無(wú)意義 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 52 當(dāng)數(shù)據(jù)用壓縮或非壓縮當(dāng)數(shù)據(jù)用壓縮或非壓縮BCD碼表示時(shí),碼表示時(shí), 為使運(yùn)算的結(jié)果仍為為使運(yùn)算的結(jié)果仍為BCD碼表示,需對(duì)結(jié)果進(jìn)行調(diào)整。碼表示,需對(duì)結(jié)果進(jìn)行調(diào)整。 十進(jìn)制運(yùn)算十進(jìn)制運(yùn)算 = 二進(jìn)制運(yùn)算二進(jìn)制運(yùn)算 + 十進(jìn)制調(diào)整十進(jìn)制調(diào)整 例例(0000 1000 )(0000 1
53、000 ) 壓縮 壓縮BCD + (0000 1001) (0000 1001) 壓縮 壓縮BCD = (0001 0111 ) (0001 0111 ) 壓縮 壓縮BCD 計(jì)算機(jī)計(jì)算過(guò)程計(jì)算機(jī)計(jì)算過(guò)程 看作壓縮看作壓縮BCD 0000 1000 08 0000 1000 08 + 0000 1001 09 + 0000 1001 09 0001 0001 11 0001 0001 11 二進(jìn)制運(yùn)算二進(jìn)制運(yùn)算 十進(jìn)制調(diào)整十進(jìn)制調(diào)整 + 0000 0110 + 0000 0110 0001 0111 17 0001 0111 17 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 53 當(dāng)用計(jì)算機(jī)進(jìn)
54、行計(jì)算時(shí):當(dāng)用計(jì)算機(jī)進(jìn)行計(jì)算時(shí): 必須先把必須先把 為便于十進(jìn)制運(yùn)算,計(jì)算機(jī)提供了一組十進(jìn)制調(diào)整指令,為便于十進(jìn)制運(yùn)算,計(jì)算機(jī)提供了一組十進(jìn)制調(diào)整指令, 這組指令在這組指令在。 80888088中提供了六條調(diào)整指令。中提供了六條調(diào)整指令。 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 54 (1 1)DAADAA(Decimal adjust after addition)Decimal adjust after addition)加法十進(jìn)制調(diào)整指令加法十進(jìn)制調(diào)整指令 (2 2)DASDAS(Decimal adjust after subtraction)Decimal adjust aft
55、er subtraction)減法十進(jìn)制調(diào)整指減法十進(jìn)制調(diào)整指 令令 (3 3)AAAAAA(ASCII adjust after addition)ASCII adjust after addition)加法加法ASCIIASCII調(diào)整指令調(diào)整指令 (4 4)AASAAS(ASCII adjust after subtraction)ASCII adjust after subtraction)減法減法ASCIIASCII調(diào)整指令調(diào)整指令 (5 5)AAMAAM(ASCII adjust after multiply)ASCII adjust after multiply)乘法乘法ASCII
56、ASCII調(diào)整指令調(diào)整指令 (6 6)AADAAD(ASCII adjust before division)ASCII adjust before division)除法除法ASCIIASCII調(diào)整指令調(diào)整指令 共同點(diǎn):共同點(diǎn): 十進(jìn)制調(diào)整指令隱含寄存器操作數(shù)十進(jìn)制調(diào)整指令隱含寄存器操作數(shù)AL;AL; ASCII ASCII調(diào)整指令隱含寄存器操作數(shù)調(diào)整指令隱含寄存器操作數(shù)ALAL或或AHAH。 十進(jìn)制調(diào)整指令對(duì)壓縮十進(jìn)制調(diào)整指令對(duì)壓縮BCDBCD碼進(jìn)行調(diào)整;碼進(jìn)行調(diào)整; ASCIIASCII調(diào)整指令對(duì)非壓縮調(diào)整指令對(duì)非壓縮BCDBCD碼進(jìn)行調(diào)整碼進(jìn)行調(diào)整; ; 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī)
57、 應(yīng)用基礎(chǔ)特點(diǎn) 55 (1)DAA(Decimal adjust after addition)加法十進(jìn)制調(diào)整指令加法十進(jìn)制調(diào)整指令 格式:格式:DAA 條件:參加運(yùn)算數(shù)(加法)必須是兩個(gè)壓縮的條件:參加運(yùn)算數(shù)(加法)必須是兩個(gè)壓縮的BCD碼,碼, 在執(zhí)行在執(zhí)行DAA指令以前必須執(zhí)行指令以前必須執(zhí)行ADD或或ADC指令。指令。 功能:(功能:(AL)把由兩個(gè)壓縮把由兩個(gè)壓縮BCD碼相加后的結(jié)果碼相加后的結(jié)果 (結(jié)果一定放在(結(jié)果一定放在(AL)中的),調(diào)整到壓縮中的),調(diào)整到壓縮BCD格式。格式。 DAA指令影響指令影響 標(biāo)志標(biāo)志: A、C、P、S、Z . 而對(duì)而對(duì)O標(biāo)志未作定義。標(biāo)志未作定義
58、。 校正操作:校正操作: 若若 (AL)3 0 9 或 或AF=1, 則則 (AL) (AL)+06H, AF 1 若若 (AL)7 4 9 或 或CF=1, 則則 (AL) (AL)+60H, CF 1 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 56 應(yīng)用舉例:應(yīng)用舉例: 例例1:設(shè)(設(shè)(AL)=28 H ,(,(BL)=68H ADD AL,BL ; (AL)=90H,CF=0,AF=1 DAA ; (AL) (AL)+06 ,(AL) = 96H ; 例例2: (BCD3)(BCD1)+(BCD2)1834H2789H = 4623H 注意:注意: 例例2中的中的。 三算術(shù)運(yùn)算指令指
59、令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 57 實(shí)現(xiàn):實(shí)現(xiàn):(BCD1+1)(BCD1)+(BCD2+1)(BCD2)(BCD3+1)(BCD3) 程序程序: MOV AL,BCD1 ;(;(AL)=34 ADD AL,BCD2 ;(;(AL)(AL)+(BCD2),BD=34+89 , AF=,CF=0 DAA ; 0BD+06+60=23, AF=1,CF=1 MOV BCD3,AL ; (BCD3)=23 MOV AL,BCD1+1 ; (AL)=18 ADC AL,BCD2+1 ; 40=18+27+CF(AL),AF=1,CF=0 DAA ;(;(AL)+06=46(AL), CF=0, AF=
60、1 MOV BCD3+1,AL ; (BCD3) = 4623H ;(;(BCD3+1) (BCD3) = 4623H 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 58 (Decimal adjust after subtraction) 格式:格式:DAS 操作操作: (AL)把(把(AL)中的差調(diào)整到壓縮的)中的差調(diào)整到壓縮的BCD格式。格式。 條件:條件: DAS 影響影響 標(biāo)志標(biāo)志: 影響影響A、C、P、S、Z . 而對(duì)而對(duì)O標(biāo)志未作定義。標(biāo)志未作定義。 校正操作:校正操作: 三算術(shù)運(yùn)算指令指令分類:計(jì)算機(jī) 應(yīng)用基礎(chǔ)特點(diǎn) 59 應(yīng)用舉例:應(yīng)用舉例: 例例1:設(shè)(:設(shè)(AL)=86H,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)代家居裝飾風(fēng)格與心理健康關(guān)系探討
- 構(gòu)建以服務(wù)功能為導(dǎo)向的綠色生態(tài)環(huán)境教育體系
- 生物醫(yī)藥與健康產(chǎn)業(yè)的投資潛力研究
- 現(xiàn)代化技術(shù)與醫(yī)療中心的高層建筑設(shè)計(jì)思考
- 生態(tài)城市建設(shè)中環(huán)境科學(xué)的應(yīng)用研究
- Unit 5 We're family Period 3 (說(shuō)課稿)-2024-2025學(xué)年外研版(三起)(2024)英語(yǔ)三年級(jí)上冊(cè)
- 2024-2025學(xué)年高中生物 第四部分 淺嘗現(xiàn)代生物技術(shù)說(shuō)課稿 浙科版選修1
- 2024-2025學(xué)年高中物理 第四章 電磁感應(yīng) 5 電磁感應(yīng)現(xiàn)象的兩類情況(1)說(shuō)課稿 新人教版選修3-2
- 9古代科技 耀我中華-獨(dú)領(lǐng)風(fēng)騷的古代技術(shù)創(chuàng)造(說(shuō)課稿)2023-2024學(xué)年統(tǒng)編版道德與法治五年級(jí)上冊(cè)
- 26 手術(shù)臺(tái)就是陣地 說(shuō)課稿-2024-2025學(xué)年統(tǒng)編版語(yǔ)文三年級(jí)上冊(cè)001
- 2025版茅臺(tái)酒出口業(yè)務(wù)代理及銷(xiāo)售合同模板4篇
- 2025年N1叉車(chē)司機(jī)考試試題(附答案)
- 《醫(yī)院財(cái)務(wù)分析報(bào)告》課件
- 2024年考研政治試題及答案
- 2024-2025學(xué)年人教版數(shù)學(xué)六年級(jí)上冊(cè) 期末綜合卷(含答案)
- 天津市部分區(qū)2023-2024學(xué)年高二上學(xué)期期末考試 物理 含解析
- 2025年初級(jí)社會(huì)工作者綜合能力全國(guó)考試題庫(kù)(含答案)
- 2024年濰坊護(hù)理職業(yè)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)附答案
- 《鉗工基本知識(shí)》課件
- 第八期:風(fēng)電典型事故案例剖析(二)
- DB63T 2357-2024 危化品常壓儲(chǔ)罐安全管理規(guī)范
評(píng)論
0/150
提交評(píng)論