




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、1,第三節(jié) 8086/8088的指令系統(tǒng)(續(xù)) 二、算術(shù)運算指令(Arithmetic) 1. 加法指令 2. 減法指令,2,二算術(shù)運算指令(Arithmetic) 內(nèi)容: 8086/8088提供加、減、乘、除、轉(zhuǎn)換五種基本算術(shù)操作; 利用十進制調(diào)整指令和ASCII調(diào)整指令對BCD碼表示的 十進制數(shù)進行算術(shù)運算; 對帶符號數(shù)與無符號數(shù)進行乘、除運算。 (一)加法指令(Arithmetic) (二)減法指令(Subtraction) (三)乘法指令(Multiplication) (四)除法指令(Division) (五)轉(zhuǎn)換指令,3,特點: 大部分都影響標志位,不同指令影響不同: (1) 加、
2、減法指令影響 SF,ZF,AF,PF,CF,OF; (2) 加1和減1指令不影響CF; (3) 乘法指令影響CF,OF; (4) 除法指令使大部分標志位的狀態(tài)不確定; (5) 對BCD碼調(diào)整指令對標志位的影響不同; (6) 轉(zhuǎn)換指令對標志位無影響 都可以用于字節(jié)、字的運算; 雙操作數(shù)指令除源為立即數(shù)外,其余必須有一個操作數(shù) 為寄存器;單操作數(shù)指令不能為立即數(shù)。,4,(一)加法指令(Arithmetic) 8088具有 5 種加法操作指令: 1、 ADD(Addition)加法指令 2、 ADC(Add with carry)帶進位加法指令 3、 INC(Increment by 1)加 1指令
3、 4、 AAA(ASCII adjust for addition)加法ASCII調(diào)整指令 5、 DAA(Decimal adjust for addition)加法十進制調(diào)整指令,5,1、 ADD(Addition)加法指令 指令格式:ADD dest , src ;(dest) (dest)+(src) Src:立即數(shù),寄存器,存儲器。 dest:寄存器,存儲器。 例: ADD CL,10;寄存器+立即數(shù) ADD DX,SI;寄存器+寄存器 ADD AX, MEM;寄存器+存儲器 ADD DATABX, AL;存儲器+寄存器 ADD BYTE PTRALPHADI,30H ;存儲器+立即數(shù)
4、,6,特點: 可以進行8位、16位的無符號數(shù)和帶符號數(shù)的加法運算; 源操作數(shù)和目標操作數(shù)不能同時為存儲器, 不能為段寄存器; 指令影響標志位的情況: OF=1, 8位帶符號數(shù)相加,和超出范圍(128127), 16位帶符號數(shù)相加,和超出范圍(-32768+32767); CF=1, 8位無符號數(shù)相加,和超過255, 16位無符號數(shù)相加,和超過65535。 其他條件標志(SF,AF,PF,ZF)根據(jù)定義設定。,7,例MOV AL,7EH;(AL)=7EH MOV BL, 5BH;(BL)=5BH ADD AL,BL;(AL)=7EH+5BH=D9H 影響標志位的情況: SF=1, 結(jié)果最高位1
5、ZF=0,結(jié)果不等于0 AF=1,D3 位向D4 有進位 PF=0,”1”的個數(shù)為奇數(shù) CF=0,無進位 OF=1,和超過127 (兩個正數(shù)相加,結(jié)果為負;反之亦是),8,2、 ADC(Add with carry)帶進位加法指令 格式:ADC dest,src ;(dest)(dest)+(src)+ CF CF: 進位標志CF的現(xiàn)行值(上條指令執(zhí)行后CF值) 特點: 與ADD同,但需要再加上當前的進位位的值。 用途:主要用于多字節(jié)運算中。 類型舉例: ADC CX, 300 ;寄存器+立即數(shù)+CF ADC AL, BL ;寄存器+寄存器+CF ADC DX, COUNTSI ;寄存器+存儲
6、器CF ADC BLOCKDI, BX ;存儲器+寄存器+CF ADC BYTE PTR MEM, 6 ;存儲器+立即數(shù)+CF,9,用途舉例: 計算兩個多字節(jié)數(shù)相加 3B74AC60F8H+20D59E36C1H=? 兩個多字節(jié)數(shù)存放在: DATA1,DATA2的開始單元。,流程圖,多字節(jié)數(shù)內(nèi)存存放,10,程序: 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) HLT;停機,11,問題思考:
7、 (1)什么叫溢出?什么叫進位? (2)有進位就有溢出,沒有進位就沒有溢出?,溢出-是指帶符號數(shù)的補碼溢出。 字長為 n 位帶符號數(shù),補碼運算能表示范圍為:-2 n-1 +2 n+1 1 如果運算結(jié)果超出該范圍,叫補碼溢出,簡稱溢出。在溢出時,造成運算錯誤。,進位-是指運算結(jié)果的最高位向更高位的進位。 有進位,CF=1;無進位, CF=0,12,(2)有進位就有溢出,沒有進位就沒有溢出? 結(jié)論: 有進位不一定有溢出,沒有進位不一定沒有溢出。 數(shù)的表示范圍: 8位二進制數(shù)可以表示十進制數(shù)的范圍: 8位帶符號十進制數(shù)的范圍:128127 8位無符號十進制數(shù)的范圍:0255 16位二進制數(shù)可以表示十
8、進制數(shù)的范圍: 16位帶符號十進制數(shù)的范圍:3276832767 16位無符號十進制數(shù)的范圍:065535,13,以8位二進制數(shù)為例分析一下數(shù)的溢出與進位情況: 下面分4種情況加以討論: (1)帶符號數(shù)和無符號數(shù)都不溢出 (2)無符號數(shù)溢出 (3)帶符號數(shù)溢出 (4)帶符號數(shù)和無符號數(shù)都溢出,14,(1)帶符號數(shù)和無符號數(shù)都不溢出,。,15,(2)無符號數(shù)溢出,16,(3)帶符號數(shù)溢出,17,(4)帶符號數(shù)和無符號數(shù)都溢出,18,結(jié)論: (1)帶符號數(shù)相加溢出 根據(jù)OF= 1 ?,判斷帶符號數(shù)產(chǎn)生溢出? OF=1,同符號數(shù)相加,結(jié)果符號與其相反,產(chǎn)生溢出; OF=0, 同符號數(shù)相加,結(jié)果符號與
9、其相同,不產(chǎn)生溢出; 異號數(shù)相加,不可能溢出。 (2)無符號數(shù)相加溢出 根據(jù)CF= 1 ?,判斷無符號數(shù)產(chǎn)生溢出? CF=1,無符號數(shù)相加產(chǎn)生溢出,但結(jié)果并沒有錯, 只是結(jié)果放不下。,19,3、INC (Increment by 1 )加 1 指令 格式: INC dest;(B/W), (dest)(dest)+1 dest : 寄存器、存儲器。不能是段寄存器。 功能:對指定的目標操作數(shù)+1 操作數(shù)單元。 用途:用于在循環(huán)程序中修改地址指針和循環(huán)次數(shù)。 標志位影響情況:影響SF,ZF,AF,PF,OF。 不影響CF。,20,操作數(shù)類型:可以是寄存器,存儲器。不能是段寄存器。 例: INC D
10、L; 8位寄存器1 INC SI;16位寄存器1 INC BYTE PTR BXSI ;存儲器1(字節(jié)操作) INC WORD PTR DI;存儲器1(字操作) INC DS; 錯,21,(二)減法指令(Subtraction) 8088有7條減法指令 : 1、SUB(Subtraction)減法指令 2、SBB(Subtraction with borrow)帶進位減法指令 3、DEC(Decrement by 1 ) 減 1 指令 4、NEG(Negate) 求補指令 5、CMP(Compare) 比較指令 6、AAS(ASCII adjust for subtraction)減法ASCI
11、I調(diào)整指令 7、DAS(Decimal adjust for subtraction)減法十進制調(diào)整指令,22,1、SUB(Subtraction)減法指令 格式:SUB dest,src;(dest)(dest)-(src) Src:立即數(shù),寄存器,存儲器。 Dest:寄存器,存儲器。 例:SUB AL,37H;寄存器-立即數(shù) SUB BX,DX;寄存器-寄存器 SUB CX, VAR1;寄存器-存儲器 SUB ARRAYSI, AX;存儲器-寄存器 SUB WORD PTRALPHABXDI,512H;存儲器減立即數(shù) 這種指令影響標志位: A、C、O、P、S、Z標志。 CF=1,無符號數(shù)小
12、減大;SF=1,帶符號數(shù)小減大, OF=1溢出.,23,2、SBB(Subtraction with borrow)帶進位減法指令 格式:SBB dest,src;(dest)(dest)-(src)-CF CF: 進位標志CF的現(xiàn)行值(上條指令CF值) Src:立即數(shù),寄存器,存儲器。 dest:寄存器,存儲器。 指令影響標志位、B/W數(shù)運算情況同SBB 用途:用于多字節(jié)數(shù)相加 例:SBB BX,100H;寄存器-立即數(shù) -CF SBB CX,DX;寄存器-寄存器-CF SBB AL, DATA1SI;寄存器-存儲器-CF SBB DISPBP, BL;存儲器-寄存器-CF SBB BYTE
13、 PTRALPHASI+6,96H;存儲器-立即數(shù)-CF,24,問題思考: 減法有借位就有溢出,沒有借位就沒有溢出? 結(jié)論:CF=1 表示不帶符號數(shù)有溢出。 OF=1 表示帶符號數(shù)有溢出。 CF值反映無符號數(shù)運算中的借位情況: 無符號數(shù)相減: CF=1 ,減數(shù)被減數(shù),有借位 CF=0 ,被減數(shù)減數(shù),無借位 補碼加法: CF=1, 二進制運算中最高有效位向高位無進位 CF=0, 二進制運算中最高有效位向高位有進位 減法0F位設置: OF=1, 二個數(shù)符號相反,結(jié)果符號與減數(shù)相同; 否則,OF=0。,25,3、DEC (Decrement by 1 ) 減 1 指令 格式: DEC dest ;(
14、B/W) (dest)(dest)-1 dest : 寄存器、存儲器。不能是段寄存器。 功能:對指定的目標操作數(shù)-1 操作數(shù)單元。 用途:用于在循環(huán)程序中修改地址指針和循環(huán)次數(shù)。 標志位影響情況:影響SF,ZF,AF,PF,OF。 不影響CF。,26,DEC 用途舉例: MOV AX , 0FFFFH CYC: DEC AX JNZ CYC HLT 用于延時時間。,27,4、NEG (Negate) 求補指令 格式: NEG dest ;B/W, (dest) 0 - (dest) dest : 寄存器、存儲器。 操作: 把操作數(shù)按位求反后末位+1。 (dest) 0FFFFH -(dest)
15、+1 影響標志:A、C、O、P、S、Z。 CF:操作數(shù)為0時求補,CF=0 ; 一般使CF=1. OF: 對128 或32768求補,OF=1; 否則OF=0.,28,應用舉例:求絕對值 在內(nèi)存中, 從AREA1開始存放100個帶符號數(shù)。 求各數(shù)的絕對值存于AREA2的開始單元。,流程圖,29,程序: LEA SI, AREA1 LEA DI, AREA2 MOV CX, 100 CHECK: MOV AL, SI OR AL, AL ;(AL)內(nèi)容不變,置標志 JNS NEXT ;SF=0轉(zhuǎn)NEXT NEG AL ;負數(shù)求補 NEXT: MOV DI, AL ;送目標 INC SI INC
16、DI DEC CX JNZ CHECK HLT,30,5、CMP(Compare) 比較指令 格式:CMP dest,src; B/W (dest)-(src) 結(jié)果不送,僅置標志。 影響標志:A、C、O、P、S、Z。 src:立即數(shù),寄存器,存儲器。 dest:寄存器,存儲器。 例: CMP AL,0AH;寄存器與立即數(shù)比較 CMP CX, DI;寄存器與寄存器比較 CMP AX, AREA1;寄存器與存儲器比較 CMP BX+5, SI;存儲器與寄存器比較 CMP WORD PTRALPHAGAMMA,100H;存儲器與立即數(shù)比較,31,用途: 用比較指令來比較兩個數(shù)之間的關(guān)系: 兩者是否
17、相等,兩個數(shù)中哪個大。 (1) 根據(jù)Z標志,判斷兩者是否相等; (2)根據(jù)CF標志, 判斷兩個無符號數(shù)的大小; (3)用S、O標志,判斷二個帶符號數(shù)的大小。,32,(1) 根據(jù)Z標志,可判斷兩者是否相等 例: CMP AX, BX ZF=1, (AX) = (BX),兩者相等 ZF=0, (AX) = (BX),兩者不相等 (2)根據(jù)CF標志, 判斷兩個無符號數(shù)的大小 例: 比較AX,BX寄存器, 將大數(shù) (AX) CMP AX,BX JNC NEXT ; CF=0轉(zhuǎn)NEXT XCHG AX,BX NEXT: 結(jié)論:CF=0 ,(AX) (BX); CF=1, (AX) (BX),33,(3)用SF、OF標志,判斷二個帶符號數(shù)的大小 設:被比較二個帶符號數(shù)分別為 : A、B 分四種情況討論: A0, B0 A0, B0,34,四種情況討論(操作數(shù)以8位為例):,35,分析以上四種情況得出如下結(jié)論: (1) OF=0 時: SF=0, 則:AB SF=1, 則:AB SF=0,則:AB; O、S異號時: 記作 SO=1 , 則: AB, 用JG/JNLE轉(zhuǎn)移指令; SO=1時, AB, 用JL/JNGE轉(zhuǎn)移指令。,36,CMP指令應用舉例:帶符號數(shù)找最大值 若自BLOCK開始的內(nèi)存緩沖區(qū)中,有100個帶符號數(shù)。找出最大值。并存放到MAX單元中。 思路: 第一個
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- hr個人工作總結(jié)
- (2024年秋季版)七年級道德與法治上冊 第二單元 青春的腳步 青春的氣息 第三課 人們說我們長大了教學實錄 魯人版六三制
- 分流安置用工合同范本
- 小學年度工作總結(jié)范文-xx小學年度工作總結(jié)
- 個人與公司設計合同范例
- 買賣租賃汽車合同范例
- 學期協(xié)會工作總結(jié)
- 口腔老板勞務合同范本
- 醫(yī)藥長期供貨合同范本
- 加盟飯店合伙協(xié)議合同范例
- 蜂膠表彰會中宏全國通用版模板課件
- 消化系統(tǒng)疾病PBL教學案例
- DBJ∕T 15-104-2015 預拌砂漿混凝土及制品企業(yè)試驗室管理規(guī)范
- 裝配式建筑疊合板安裝技術(shù)交底
- 2022年HTD-8M同步帶輪尺寸表
- 皮帶滾筒數(shù)據(jù)標準
- 腳手架操作平臺計算書
- 內(nèi)科學第八版循環(huán)系統(tǒng)教學大綱
- 煤礦供電系統(tǒng)及供電安全講座方案課件
- 綠色建筑及材料分析及案列
- 實用中西醫(yī)結(jié)合診斷治療學
評論
0/150
提交評論