版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
二、8086/8088的指令系統(tǒng)(續(xù))2.算術(shù)運算指令(Arithmetic)內(nèi)容:
8086/8088提供加、減、乘、除、轉(zhuǎn)換五種基本算術(shù)操作;
利用十進(jìn)制調(diào)整指令和ASCII調(diào)整指令對BCD碼表示的十進(jìn)制數(shù)進(jìn)行算術(shù)運算;
對帶符號數(shù)與無符號數(shù)進(jìn)行乘、除運算。(一)加法指令(Arithmetic)(二)減法指令(Subtraction)(三)乘法指令(Multiplication)(四)除法指令(Division)(五)轉(zhuǎn)換指令特點:
大部分都影響標(biāo)志位,不同指令影響不同:(1)加、減法指令影響SF,ZF,AF,PF,CF,OF;(2)加1和減1指令不影響CF;(3)乘法指令影響CF,OF;(4)除法指令使大部分標(biāo)志位的狀態(tài)不確定;(5)對BCD碼調(diào)整指令對標(biāo)志位的影響不同;(6)轉(zhuǎn)換指令對標(biāo)志位無影響
都可以用于字節(jié)、字的運算;
雙操作數(shù)指令除源為立即數(shù)外,其余必須有一個操作數(shù)
為寄存器;單操作數(shù)指令不能為立即數(shù)。
(一)加法指令(Arithmetic)8086具有5種加法操作指令:1、ADD(Addition)加法指令2、ADC(Addwithcarry)帶進(jìn)位加法指令3、INC(Incrementby1)加1指令
4、AAA(ASCIIadjustforaddition)加法ASCII調(diào)整指令5、DAA(Decimaladjustforaddition)加法十進(jìn)制調(diào)整指令
1、ADD(Addition)加法指令指令格式:ADDdest,src;(dest)(dest)+(src)
Src:立即數(shù),寄存器,存儲器。 dest:寄存器,存儲器。例: ADDCL,10 ;寄存器+立即數(shù) ADDDX,SI ;寄存器+寄存器 ADDAX,MEM ;寄存器+存儲器 ADDDATA[BX],AL ;存儲器+寄存器 ADDBYTEPTRALPHA[DI],30H;存儲器+立即數(shù)特點:
可以進(jìn)行8位、16位的無符號數(shù)和帶符號數(shù)的加法運算;
源操作數(shù)和目標(biāo)操作數(shù)不能同時為存儲器,不能為段寄存器;
指令影響標(biāo)志位的情況:
OF=1, 8位帶符號數(shù)相加,和超出范圍(-128~+127),16位帶符號數(shù)相加,和超出范圍(-32768~+32767);CF=1,8位無符號數(shù)相加,和超過255,
16位無符號數(shù)相加,和超過65535。其他條件標(biāo)志(SF,AF,PF,ZF)根據(jù)定義設(shè)定。例 MOVAL,7EH ;(AL)=7EH MOVBL,5BH ;(BL)=5BH ADDAL,BL ;(AL)=7EH+5BH=D9H影響標(biāo)志位的情況: SF=1 ,結(jié)果最高位=1 ZF=0 ,結(jié)果不等于0 AF=1 ,D3位向D4有進(jìn)位 PF=0 ,”1”的個數(shù)為奇數(shù) CF=0 ,無進(jìn)位 OF=1 ,和超過+127
(兩個正數(shù)相加,結(jié)果為負(fù);反之亦是)2、ADC(Addwithcarry)帶進(jìn)位加法指令格式:ADCdest,src;(dest)←(dest)+(src)+CF
CF:
進(jìn)位標(biāo)志CF的現(xiàn)行值(上條指令CF值)特點:與ADD同。用途:主要用于多字節(jié)運算中。類型舉例: ADCCX,300 ;寄存器+立即數(shù)+CF ADCAL,BL ;寄存器+寄存器+CF ADCDX,COUNT[SI] ;寄存器+存儲器+CF ADCBLOCK[DI],BX ;存儲器+寄存器+CFADCBYTEPTRMEM,6 ;存儲器+立即數(shù)+CF用途舉例:計算兩個多字節(jié)數(shù)相加3B74AC60F8H+20D59E36C1H=?兩個多字節(jié)數(shù)存放在:DATA1,DATA2的開始單元。多字節(jié)數(shù)內(nèi)存存放程序:
MOVCX,5 MOVSI,0 ;清SI
CLC ;清CFLOOPER: MOVAL,DATA2[SI]
ADCDATA1[SI],AL INCSI ;(SI)+1(SI) DECCX ;(CX)-1(CX) JNZLOOPER ;(CX)0轉(zhuǎn) HLT ;停機問題思考:(1) 什么叫溢出?什么叫進(jìn)位?(2) 有進(jìn)位就有溢出,沒有進(jìn)位就沒有溢出?(1)溢出------是指帶符號數(shù)的補碼溢出。
字長為n位帶符號數(shù),補碼運算能表示范圍為:-2n-1~+2n+1–1如果運算結(jié)果超出該范圍,叫補碼溢出,簡稱溢出。在溢出時,造成運算錯誤。
進(jìn)位------是指運算結(jié)果的最高位向更高位的進(jìn)位。有進(jìn)位,CF=1;無進(jìn)位,CF=0問題思考:(1) 什么叫溢出?什么叫進(jìn)位?(2) 有進(jìn)位就有溢出,沒有進(jìn)位就沒有溢出?(1)溢出------是指帶符號數(shù)的補碼溢出。
字長為n位帶符號數(shù),補碼運算能表示范圍為:-2n-1~+2n+1–1如果運算結(jié)果超出該范圍,叫補碼溢出,簡稱溢出。在溢出時,造成運算錯誤。
進(jìn)位------是指運算結(jié)果的最高位向更高位的進(jìn)位。有進(jìn)位,CF=1;無進(jìn)位,CF=0(2)有進(jìn)位就有溢出,沒有進(jìn)位就沒有溢出?結(jié)論: 有進(jìn)位不一定有溢出,沒有進(jìn)位不一定沒有溢出。以8位二進(jìn)制數(shù)為例分析一下數(shù)的溢出與進(jìn)位情況:下面分4種情況加以討論:(1) 帶符號數(shù)和無符號數(shù)都不溢出(2) 無符號數(shù)溢出(3) 帶符號數(shù)溢出(4) 帶符號數(shù)和無符號數(shù)都溢出(1) 帶符號數(shù)和無符號數(shù)都不溢出(2) 無符號數(shù)溢出二進(jìn)制數(shù)看作無符號數(shù)看作帶符號數(shù)0000011111111011+000000107251+258+7-5++2相加標(biāo)志CF=1,OF=0CF=1OF=0溢出無符號數(shù)溢出溢出結(jié)果應(yīng)為2,錯不溢出異號數(shù)相加不可能有溢出CF=1(3) 帶符號數(shù)溢出二進(jìn)制數(shù)看作無符號數(shù)看作帶符號數(shù)00001001011111100+100001019124+133+9+124++133相加標(biāo)志CF=0,OF=1CF=0OF=1溢出帶符號數(shù)溢出不溢出溢出結(jié)果為-5結(jié)果錯(4) 帶符號數(shù)和無符號數(shù)都溢出結(jié)論:(1)帶符號數(shù)相加溢出
根據(jù)OF=1?,判斷帶符號數(shù)產(chǎn)生溢出?
OF=1,同符號數(shù)相加,結(jié)果符號與其相反,產(chǎn)生溢出;OF=0,同符號數(shù)相加,結(jié)果符號與其相同,不產(chǎn)生溢出;異號數(shù)相加,不可能溢出。(2)無符號數(shù)相加溢出
根據(jù)CF=1?,判斷無符號數(shù)產(chǎn)生溢出?
CF=1,無符號數(shù)相加產(chǎn)生溢出,但結(jié)果并沒有錯, 只是結(jié)果放不下。3、INC(Incrementby1)加1指令格式:INC dest ;(B/W),(dest)←(dest)+1 dest:寄存器、存儲器。不能是段寄存器。功能:對指定的目標(biāo)操作數(shù)+1操作數(shù)單元。用途:用于在循環(huán)程序中修改地址指針和循環(huán)次數(shù)。標(biāo)志位影響情況:影響SF,ZF,AF,PF,OF。
不影響CF。操作數(shù)類型:可以是寄存器,存儲器。不能是段寄存器。例:INCDL ;8位寄存器+1INCSI ;16位寄存器+1INCBYTEPTR[BX][SI];存儲器+1(字節(jié)操作)INCWORDPTR[DI] ;存儲器+1(字操作)
INCDS ;錯(二)減法指令(Subtraction)
8086有7條減法指令:1、SUB(Subtraction)減法指令2、SBB(Subtractionwithborrow)帶進(jìn)位減法指令
3、DEC(Decrementby1)減1指令4、NEG(Negate)求補指令5、CMP(Compare)比較指令6、AAS(ASCIIadjustforsubtraction)減法ASCII調(diào)整指令7、DAS(Decimaladjustforsubtraction)減法十進(jìn)制調(diào)整指令1、SUB(Subtraction)減法指令格式::SUBdest,src;(dest)←(dest)-(src)
Src:立即數(shù),寄存器,存儲器。 Dest:寄存器,存儲器。例: SUBAL,37H ;寄存器-立即數(shù) SUBBX,DX ;寄存器-寄存器 SUBCX,VAR1 ;寄存器-存儲器 SUBARRAY[SI],AX ;存儲器-寄存器SUBWORDPTRALPHA[BX][DI],512H;存儲器減立即數(shù)這種指令影響標(biāo)志位:A、C、O、P、S、Z標(biāo)志。
2、SBB
(Subtractionwithborrow)帶進(jìn)位減法指令
格式::SBBdest,src;(dest)←(dest)-(src)-CF CF:進(jìn)位標(biāo)志CF的現(xiàn)行值(上條指令CF值)
Src:立即數(shù),寄存器,存儲器。 dest:寄存器,存儲器。指令影響標(biāo)志位、B/W數(shù)運算情況同SBB用途:用于多字節(jié)數(shù)相減例: SBBBX,100H ;寄存器-立即數(shù)-CF SBBCX,DX ;寄存器-寄存器-CF SBBAL,DATA1[SI] ;寄存器-存儲器-CF SBBDISP[BP],BL ;存儲器-寄存器-CFSBBBYTEPTRALPHA[SI+6],96H;存儲器-立即數(shù)-CF3、DEC(Decrementby1)減1指令格式:DECdest ;(B/W) (dest)←(dest)-1
dest:寄存器 、存儲器。不能是段寄存器。功能:對指定的目標(biāo)操作數(shù)-1操作數(shù)單元。用途:用于在循環(huán)程序中修改地址指針和循環(huán)次數(shù)。標(biāo)志位影響情況:影響SF,ZF,AF,PF,OF。
不影響CF。DEC用途舉例: … MOVAX,0FFFFH CYC:DECAX JNZCYC HLT …用于延時時間。4、NEG(Negate)求補指令格式:NEGdest;B/W,(dest)←0-(dest)
dest:寄存器 、存儲器。操作:把操作數(shù)按位求反后末位+1。(dest)←0FFFFH-(dest)+1影響標(biāo)志:A、C、O、P、S、Z。CF: 操作數(shù)為0時求補,CF=0;一般使CF=1.OF:對-128(80H)或-32768(8000H)求補,結(jié)果沒有變化,但OF=1;否則OF=0.5、CMP(Compare)比較指令格式:CMPdest,src ;B/W(dest)-(src)
結(jié)果不送,置標(biāo)志。影響標(biāo)志:A、C、O、P、S、Z。
src: 立即數(shù),寄存器,存儲器。 dest:寄存器,存儲器。例: CMPAL,0AH ;寄存器與立即數(shù)比較 CMPCX,DI ;寄存器與寄存器比較 CMPAX,AREA1 ;寄存器與存儲器比較 CMP[BX+5],SI ;存儲器與寄存器比較CMPWORDPTRALPHAGAMMA,100H;存儲器與立即數(shù)比較用途:用比較指令來比較兩個數(shù)之間的關(guān)系: 兩者是否相等,兩個數(shù)中哪個大。(1)根據(jù)Z標(biāo)志,判斷兩者是否相等;(2) 根據(jù)CF標(biāo)志,判斷兩個無符號數(shù)的大?。唬?) 用S、O標(biāo)志,判斷二個帶符號數(shù)的大小。
(1)根據(jù)Z標(biāo)志,可判斷兩者是否相等例:CMPAX,BX
ZF=1,(AX)=(BX),兩者相等 ZF=0,(AX)=(BX),兩者不相等(2) 根據(jù)CF標(biāo)志,判斷兩個無符號數(shù)的大小例:比較AX,BX寄存器,將大數(shù)(AX) …
CMPAX,BX JNCNEXT;CF=0轉(zhuǎn)NEXT XCHGAX,BXNEXT:……結(jié)論:CF=0,(AX)>(BX);CF=1,(AX)<(BX)(3) 用SF、OF標(biāo)志,判斷二個帶符號數(shù)的大小設(shè):被比較二個帶符號數(shù)分別為:A、B分四種情況討論:
A>0,B>0
A<0,B<0 A>0,B<0 A<0,B>0四種情況討論(操作數(shù)以8位為例):ABCMPA,B結(jié)論75A>0,B>0SF=0,OF=0則:A>B57情況A>0,B>0SF=1,OF=0則:A<B-525-7-2-5-71-7-5-5-(-7)+2A<0,B<0SF=1,OF=0則:A<BA<0,B<0SF=0,OF=0則:A>B-7-(-5)-2
3+127-50A>0,B<0OF=1,SF=1則:A>B+127-(-50)+177
4-50+127A<0,B>0SF=0,OF=1則:A<B-50-(+127)-1777-52127-(-50)=177在計算機中運算時
01111111+0011001010110001=-79分析以上四種情況得出如下結(jié)論:OF=SF=0或SF=OF=1時:記作SFOF=0,則:
A>B;
OF、SF異號時:記作SO=1,則:
A<B。CMP指令應(yīng)用舉例:帶符號數(shù)找最大值
若自BLOCK開始的內(nèi)存緩沖區(qū)中,有100個帶符號數(shù)。找出最大值。并存放到MAX單元中。思路:
第一個數(shù)取出
(AX),取出第二個數(shù)(第二個字單元內(nèi)容)與(AX)比較: (AX)>第二個數(shù),不做交換,否則,(第二個字單元內(nèi)容)(AX)。再取第三個數(shù),
…
經(jīng)過99次比較,在(AX)中得到最大數(shù)。
…編程: … MOVBX,OFFSETBLOCK MOVAX,[BX] INCBX INCBX MOVCX,99AGAIN:CMPAX,[BX]
JGNEXT
;(AX)>(16d(ds)+(BX))轉(zhuǎn)NEXT MOVAX,[BX]NEXT: INCBX INCBX DECCX
JNZAGAIN MOVMAX,AX ;MAX單元存放最大值 …(三)乘法指令無符號MUL,帶符號IMULwhy/?因為:例:3×(-2)=-6,3×14=42(2AH)方法一:直接相乘0011×111000101010=2AH方法二:去掉符號位,相乘后,再添上符號位(取補碼)0011
×001000000110取補碼111111010=FAH=-6說明?SRC只能是通用REG或M尋址,不能是立即數(shù)。?只能是字節(jié)乘字節(jié)或字乘字?存儲器尋址時加類型說明,如
MULBYTEPTR[BX]MULWORDPTR[BX]格式:
MUL(IMUL)SRC;SRC字節(jié):(AL)×SRCAXSRC字:(AX)×SRCDX:AX(四)除法指令
1、有符號數(shù)和無符號數(shù)除法指令格式:
DIV(IDIV)SRC;SRC字節(jié):(AX)÷SRCAL(商)…AH(余數(shù))SRC字:(DX:AX)÷
SRCAX(商)…DX(余數(shù))注意:SRC不能是立即數(shù);若商超出字或字節(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年廈門市民政局補充非在編工作人員招聘備考題庫及答案詳解一套
- 2025年醫(yī)院醫(yī)保辦和信息科工作總結(jié)(四篇)
- 中材鋰膜有限公司招聘考試真題2024
- 2024年淮南市淮河能源控股集團招聘考試真題
- pc板課程設(shè)計教程
- java火柴小游戲課程設(shè)計
- 2025湖南株洲市炎陵縣財政局、縣審計局公開招聘專業(yè)人才4人考試重點試題及答案解析
- 2025中信銀行誠聘駐點客戶經(jīng)理(國企可接受無經(jīng)驗)考試重點試題及答案解析
- 國家知識產(chǎn)權(quán)局專利局專利審查協(xié)作廣東中心2026年度專利審查員公開招聘備考題庫帶答案詳解
- 2025福建廈門市杏南中學(xué)產(chǎn)假頂崗教師招聘1人筆試重點題庫及答案解析
- 云南省昆明市呈貢區(qū)2024-2025學(xué)年九年級上學(xué)期期末學(xué)業(yè)水平檢測物理試題(含答案)
- 放療引起認(rèn)知功能障礙的機制以及干預(yù)和預(yù)防
- 粘豆包歇后語順口溜
- 《城鎮(zhèn)新建供水管道沖洗消毒技術(shù)規(guī)程 》
- 社區(qū)中心及衛(wèi)生院65歲及以上老年人健康體檢分析報告模板
- 病歷書寫基本規(guī)范課件
- 砼面板堆石壩混凝土面板無軌滑模施工技術(shù)專項方案設(shè)計模板
- 新海蘭褐飼養(yǎng)管理手冊
- 地下室抗浮錨桿工程施工方案
- 桿件的應(yīng)力與強度計算拉伸桿
- HGT-20519-2009-化工工藝設(shè)計施工圖內(nèi)容和深度統(tǒng)一規(guī)定
評論
0/150
提交評論