




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第三章8086/8088指令系統(tǒng)微型計算機系統(tǒng)原理及應用主講人:沈虹燕山大學電氣工程學院InstituteofElectricalEngineering3.48086的指令系統(tǒng)
可以分為以下幾類:
數(shù)據(jù)傳送指令算術(shù)運算指令邏輯運算指令串操作指令控制傳送指令
處理器控制指令3.3.2算術(shù)運算指令四種類型算術(shù)運算操作數(shù)舉例二進制碼(B)十六進制數(shù)(H)無符號十進制數(shù)(D)壓縮十進制數(shù)(D)帶符號十進制數(shù)(D)非壓縮十進制數(shù)(D)0000011110001001110001010789C57137197+7-119-597無效數(shù)無效數(shù)0789無效數(shù)加減法運算特點無符號數(shù)和有符號數(shù)可采用同一套加減運算指令無符號數(shù)和有符號數(shù)的乘除運算不能采用同一套指令無符號數(shù)和有符號數(shù)各有一條乘除運算指令兩個條件:
①要求參加運算的加數(shù)(或減數(shù))和被加數(shù)(或被減數(shù))都必須同為一種類型的數(shù)只能是二個無符號數(shù)相加(或相減)或是二個有符號數(shù)相加(或相減)②要用不同的方法檢測無符號數(shù)或有符號數(shù)的運算結(jié)果是否有溢出。
加減法運算特點對于無符號數(shù),加法和減法除了運算方法不同外,溢出的定義也有所不同。加法:向高位的進位(如8位相加,D7位向D8位的進位)減法:向高位的借位(如8位相減,不夠減時,D7位向D8位借1)對于有符號數(shù),可以采補碼運算。減法可以轉(zhuǎn)換為加法進行。如8-5=8+(-5)。下面僅以8位數(shù)的加法為例進行溢出判斷討論標志位(條件碼)判斷規(guī)則總的來說,有下列規(guī)則:①當無符號數(shù)運算產(chǎn)生溢出時,CF=1。②當有符號數(shù)運算產(chǎn)生溢時,OF=1。③如果運算結(jié)果為0,則ZF=1。④如果運算結(jié)果為負數(shù),則SF=1。⑤如果運算結(jié)果中有偶數(shù)個1,則PF=1。3.3.2算術(shù)運算指令包括:加法指令、減法指令、乘法指令、除法指令1、加法指令8086具有5條加法指令:ADD(Addition)加法指令ADC(AddwithCarry)帶進位加法指令I(lǐng)NC(Increment)加1指令AAA(ASCIIadjustforaddition)加法ASCII調(diào)整指令DAA(Decimaladjustforaddition)加法十進制調(diào)整指令1)無進位加法指令ADD指令格式:ADDdest,src;功能:(dest)(dest)+(src) src:立即數(shù),通用寄存器,存儲器
dest:通用寄存器,存儲器例:
ADDCL,10 ADDDX,SI ADDAX,[2F00H] ADD100H[BX],AL ADD[DI],30H 特點:可進行8位或16位的無符號數(shù)或有符號數(shù)加法運算;源操作數(shù)和目標操作數(shù)不能同時為存儲器,不能為段寄存器;指令影響標志位
8位(有符號)數(shù)相加,和超出范圍(-128~+127),或16位(有符號)數(shù)相加,和超出范圍(-32768~+32767),則O=18位(無符號)數(shù)相加,和超過255,或16位(無符號)數(shù)相加,和超過65535,則C=1,
其他標志(S,A,P,Z)由運算結(jié)果按定義確定。2)帶進位加法指令ADC格式:ADCdest,src;功能:(dest)←(dest)+(src)+CC:進位標志C的現(xiàn)行值(上條指令C值)特點:與ADD同。用途:主要用于多字節(jié)運算中。類型舉例:
ADCCX,300 ADCAL,BL ADCDX,[SI]ADCBYTEPTR[2000H],6【例】無符號雙字加法運算,兩個32位數(shù)02344652H與0F0F0F0F0H之和。MOVAX,4652H ;(AX)=4652HADD AX,0F0F0H ;(AX)=3742H,CF=1MOVDX,0234H ;(DX)=0234HADC DX,0F0F0H ;(DX)=0F325H,CF=0用途:ADC指令主要用于多字節(jié)運算中。
3)加1指令I(lǐng)NC格式:INC dest ;功能:(dest)←(dest)+1 dest:通用寄存器、存儲器;用途:用于在循環(huán)程序中修改地址指針和循環(huán)次數(shù)。標志位影響情況:影響S,Z,A,P,O;不影響C。不能是段寄存器或立即數(shù)[例]INCDL ;8位寄存器+1INCSI ;16位寄存器+1INC[2100H] ;錯誤應改為
INCWORDPTR[2100H]INCBYTEPTR[BX][SI];存儲器+1(字節(jié)操作)
INCWORDPTR[DI] ;存儲器+1(字操作)
INCDS ;錯4)加法ASCII調(diào)整指令AAA功能:加法的ASCII調(diào)整(未組合BCD碼加法調(diào)整)格式:AAA執(zhí)行的操作:這條指令之前必須執(zhí)行ADD或ADC指令,加法指令必須把兩個未組合(非壓縮)BCD碼相加,并把結(jié)果存放在AL寄存器中。(AL)←把AL中的和調(diào)整到未組合BCD碼(AH)←(AH)+調(diào)整產(chǎn)生的進位值AAA指令除影響AF和CF標志外,其余標志位均無定義。AAA指令的調(diào)整步驟是:(1)如AL寄存器的低4位在十六進制數(shù)A~F之間或AF為1,則AL寄存器的內(nèi)容加6,AH寄存器的內(nèi)容加1,并將AF位置1;(2)清除AL寄存器的高4位;(3)AF位的值送CF位。
例:ADDAL,BLAAA如指令執(zhí)行前,(AX)=0535H,(BL)=39H,可見AL和BL寄存器的內(nèi)容分別為5和9的ASCII碼。第一條指令執(zhí)行完后,(AL)=6EH,AF=0。第二條指令進行ASCII調(diào)整的結(jié)果使(AX)=0604H,AF=1,CF=1。5)加法十進制調(diào)整指令DAA
功能:對組合(壓縮)BCD碼加法結(jié)果作十進制調(diào)整格式:DAA執(zhí)行的操作:這條指令之前必須執(zhí)行ADD或ADC指令,加法指令必須把兩個組合BCD碼相加,并把結(jié)果存放在AL寄存器中。(AL)←把AL中的和調(diào)整到組合BCD格式DAA指令對OF標志無定義,但影響所有其它條件標志。DAA指令的調(diào)整方法是:如果AF標志(輔助進位位)為1,或者AL寄存器的低4位是十六進制的A~F,則AL寄存器內(nèi)容加06H,且將AF位置1;如果CF標志為1,或者AL寄存器的高4位是十六進制的A~F,則AL寄存器內(nèi)容加60H,并將CF位置1。例:ADDAL,BL
DAA
其中初值:(AL)=28,(BL)=682、減法指令(Subtraction)8086有7條減法指令:SUB(Subtraction)不含借位減法指令
SBB(SubtractionwithBorrow)含借位減法指令
DEC(Decrementby1)減1指令CMP(Compare)比較指令
NEG(Negate) 求補指令AAS(ASCIIAdjustforSubtraction)減法ASCII調(diào)整指令
DAS(DecimalAdjustforSubtraction)減法十進制調(diào)整指令1)減法指令SUB
格式:SUB:dest,src;功能:(dest)←(dest)-(src)
src:立即數(shù),通用寄存器,存儲器。
dest:通用寄存器,存儲器。例: SUBAL,37H SUBBX,DX
該指令影響標志位:A、C、O、P、S、Z標志。[例A]SUBBX,CX指令執(zhí)行前,BX=9543H,CX=28A7H指令執(zhí)行后,BX=6C9CH,CX=28A7H豎式計算參看下圖無符號數(shù)運算結(jié)果正確(夠減)兩數(shù)相減無借位,則CF=0[例B]有符號數(shù)運算結(jié)果出錯(負溢出)兩異號數(shù)相減,即負數(shù)加負數(shù)應是負數(shù),但這次有符號數(shù)減法運算的結(jié)果差是正數(shù)。原因是兩負數(shù)相加的和負數(shù)已超出16位有符號數(shù)所能表示的數(shù)值范圍即BX-CX=-27325-10407=-37732這個數(shù)已超出最小負數(shù)-32768則OF=1。其他標志位ZF=0,SF=0,PF=1。2)帶進位減法指令SBB
格式:SBBdest,src;功能:(dest)←(dest)-(src)-C src:立即數(shù),通用寄存器,存儲器
dest:通用寄存器,存儲器指令影響標志位例:SBBBX,100H SBBAL,[BP+SI]
3)減1指令DEC
格式:DECdest;功能:(dest)←(dest)-1dest:通用寄存器、存儲器;用途:用于在循環(huán)程序中修改地址指針和循環(huán)次數(shù)。標志位影響情況:影響S,Z,A,P,O;不影響C。例: DECCXDECBYTEPTR[DI]4)取補指令NEG格式:NEGdest;功能:對操作數(shù)取補,即用零減去操作數(shù),再把結(jié)果送回操作數(shù)
dest:通用寄存器、存儲器;影響標志:A、C、O、P、S、Z。C: 操作數(shù)為0時求補,C=0;一般使C=1.O:對-128或-32768求補,OF=1;否則OF=0。
P114兩點注意5)比較指令CMP
格式:CMPdest,src;功能:完成兩個操作數(shù)相減,再把結(jié)果反映在標志位上,結(jié)果并不送回。
src:立即數(shù),通用寄存器,存儲器
dest:通用寄存器,存儲器
(1)當比較無符號數(shù)時,CMPA,BA=B,ZF=1A>B,CF=0表示無借位
A<B,CF=1(2)當比較有符號數(shù)時,CMPA,B①A、B均為正數(shù)
SF=0則A>B;SF=1則A<B②A>0,B<0,A=+127,B=-63,顯然A>B
此時有溢出,SF=1,單用SF不行,還要考慮OFOF=1時,若SF=1則A≥B③A<0,B>0,A=-63,B=+127OF=1時,若SF=0則A<B
④A<0,B<0,可用SF判斷若SF=0則A≥B
若SF=1則A<B
綜上所述:OF=1時,若SF=0則A<B
若SF=1則A≥BOF=0時,若SF=0則A≥B
若SF=1則A<B或者表述為
OF⊕SF=0時A≥BOF⊕SF=1時A<B6)減法ASCII調(diào)整指令AAS
功能:減法的ASCII調(diào)整(未組合BCD碼減法調(diào)整)格式:AAS執(zhí)行的操作:這條指令之前必須執(zhí)行SUB或SBB指令,減法指令必須把兩個未組合(非壓縮)BCD碼相減,并把結(jié)果存放在AL寄存器中。AAS指令影響AF和CF標志AAS指令的調(diào)整步驟是:(1)如AL寄存器的低4位在十六進制數(shù)A~F之間或AF為1,則AL寄存器的內(nèi)容減6,AH寄存器的內(nèi)容減1,并將AF位置1;(2)清除AL寄存器的高4位;(3)AF位的值送CF位。7)減法十進制調(diào)整指令DAS
功能:組合BCD碼減法調(diào)整格式:DAS執(zhí)行的操作:這條指令之前必須執(zhí)行SUB或SBB指令,減法指令必須把兩個組合(壓縮)BCD碼相減,并把結(jié)果存放在AL寄存器中。DAS指令影響AF和CF標志DAS指令的調(diào)整步驟是:如果AF標志(輔助進位位)為1,或者AL寄存器的低4位是十六進制的A~F,則AL寄存器內(nèi)容減06H,且將AF位置1;如果CF標志為1,或者AL寄存器的高4位是十六進制的A~F,則AL寄存器內(nèi)容減60H,并將CF位置1。算術(shù)運算指令3乘法指令MULsrc無符號數(shù)乘法指令I(lǐng)MULsrc有符號數(shù)乘法指令AAM未組合BCD碼乘法調(diào)整指令MUL指令的用法說明-1格式:MULsrc;B/W操作:字操作數(shù)DX,AX←AX*(src)字節(jié)操作數(shù)AX←AL*(src)其中目的操作數(shù)dst為累加器,是隱含的。字運算,必須用AX寄存器存放目的操作數(shù)(或稱被乘數(shù))。字節(jié)運算,必須用AL寄存器存放目的操作數(shù)(或稱被乘數(shù))。MUL指令的用法說明-2源操作數(shù)src可使用寄存器操作數(shù),各種尋址方式的存儲器操作數(shù)。不允許使用立即數(shù)和段寄存器作源操作數(shù)當源操作數(shù)是存儲單元時,必須在操作數(shù)前加B或W說明是字節(jié)還是字。兩個16位數(shù)相乘得到的是32位乘積,乘積存放在DX和AX中。DX存放乘積的高位字,AX存放乘積的低位字。兩個8位數(shù)相乘得到的是16位乘積,乘積存放在AX中。乘積高8位存放在AH中,乘積低8位存放在AL中。若乘積的高半部分不為0,則OF=CF=1,表示其為有效數(shù)據(jù)。否則OF=CF=0。MUL指令操作示意圖[例]MULBL指令執(zhí)行前,AL=B4H=180,BL=11H=17。指令執(zhí)行指令執(zhí)行后,AX=0BF4H=3060,BL=11H,CF=1,OF=1。
[例]MULDL;AX←AL*DLMULCX;(DX,AX)←AX*CXMULB[SI];AX←AL*(內(nèi)存中某字節(jié))
MULW[BX];(DX,AX)←AX*(內(nèi)存中某字)MUL指令執(zhí)行后影響CF和OF標志,如果結(jié)果的高半部分(字節(jié)操作為AH、字操作為DX)不為零,表明其內(nèi)容是結(jié)果的有效位,則CF
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- SIRT1-IN-4-生命科學試劑-MCE
- AB8939-生命科學試劑-MCE
- 2C-I-FLY-hydrochloride-生命科學試劑-MCE
- 裝修律師合同范本
- 爆破合同范本2015
- 2025年圖文電視制作和播出設備項目發(fā)展計劃
- 2025年靜脈注射丙種球蛋白項目合作計劃書
- 2025年合金鑄球段合作協(xié)議書
- 2025年苯噻草胺項目發(fā)展計劃
- 財務管理外包合同(2篇)
- 靜脈采血最佳護理實踐相關(guān)知識考核試題
- 檢驗檢測中心檢驗員聘用合同
- 腰椎后路減壓手術(shù)
- 商場扶梯安全培訓
- 《全科醫(yī)學概論》課件-以家庭為單位的健康照顧
- 自來水廠安全施工組織設計
- 《跟單信用證統(tǒng)一慣例》UCP600中英文對照版
- 《醫(yī)院應急培訓》課件
- 提高教育教學質(zhì)量深化教學改革措施
- 招標代理機構(gòu)遴選投標方案(技術(shù)標)
- 證件使用協(xié)議書(2篇)
評論
0/150
提交評論