十進(jìn)制調(diào)整指令_第1頁(yè)
十進(jìn)制調(diào)整指令_第2頁(yè)
十進(jìn)制調(diào)整指令_第3頁(yè)
十進(jìn)制調(diào)整指令_第4頁(yè)
十進(jìn)制調(diào)整指令_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

關(guān)于十進(jìn)制調(diào)整指令第1頁(yè),課件共15頁(yè),創(chuàng)作于2023年2月對(duì)相加后的結(jié)果作調(diào)整:在80X86微處理器上,上述調(diào)整由“十進(jìn)制調(diào)整指令”實(shí)現(xiàn)。如果4位組的和有進(jìn)位,或者出現(xiàn)了非法組合,將本組數(shù)字加6調(diào)整第2頁(yè),課件共15頁(yè),創(chuàng)作于2023年2月格式:DAA功能:對(duì)AL中的加法結(jié)果進(jìn)行BCD運(yùn)算調(diào)整例:89+57MOV AL,89H;BCD數(shù)89裝入AL,使用16進(jìn)制數(shù)格式ADD AL,57H;按照二進(jìn)制格式相加,(AL)=0E0H,AF=1DAA ;進(jìn)行BCD加法調(diào)整,(AL)=46H,CF=1說明:調(diào)整之前先進(jìn)行二進(jìn)制加法,和必須在AL中。(1)DAA(DecimalAdjustafterAddition)十進(jìn)制加法調(diào)整第3頁(yè),課件共15頁(yè),創(chuàng)作于2023年2月if(AL低4位>9或AF=1)then AL=AL+06H; AF=1;endifif(AL高4位>9或CF=1)then AL=AL+60H; CF=1;endifDAA調(diào)整算法:第4頁(yè),課件共15頁(yè),創(chuàng)作于2023年2月格式:DAS功能:對(duì)AL中的減法結(jié)果進(jìn)行BCD運(yùn)算調(diào)整例:83-57MOV AL,83H;BCD數(shù)83裝入AL,使用16進(jìn)制數(shù)格式SUB AL,57H;按照二進(jìn)制格式相減,(AL)=2CH,AF=1DAS ;進(jìn)行BCD減法調(diào)整,(AL)=26H,CF=0說明:調(diào)整之前先進(jìn)行二進(jìn)制減法,差在AL中。

(2)DAS(DecimalAdjustafterSubtraction)十進(jìn)制減法調(diào)整第5頁(yè),課件共15頁(yè),創(chuàng)作于2023年2月if(AL低4位>9或AF=1)then AL=AL-06H; AF=1;endifif(AL高4位>9或CF=1)then AL=AL-60H; CF=1;endifDAS調(diào)整算法:第6頁(yè),課件共15頁(yè),創(chuàng)作于2023年2月兩個(gè)數(shù)的加法要分4次進(jìn)行。最低2位數(shù)的加法(78+66)用ADD指令相加,DAA指令調(diào)整。其余三次加法用ADC指令相加,DAA指令調(diào)整。上面的4次運(yùn)算可以用循環(huán)實(shí)現(xiàn)。運(yùn)算前通過指令“ADDAL,0”把CF清零,4次加法統(tǒng)一使用ADC指令實(shí)現(xiàn)。DATA SEGMENT A DD 12345678H B DD 33445566H X DD ?DATA ENDS[例3-9]用BCD數(shù)進(jìn)行運(yùn)算:12345678+33445566第7頁(yè),課件共15頁(yè),創(chuàng)作于2023年2月CODE SEGMENT ASSUME DS:DATA,CS:CODESTART:MOV AX,DATA MOV DS,AX MOV DI,0 ;設(shè)置指針初值

MOV CX,4 ;循環(huán)次數(shù)

ADD AL,0 ;CF清零NEXT: MOV AL,BYTEPTRA[DI] ;取出A的兩位BCD數(shù)

ADC AL,BYTEPTRB[DI] ;與B的對(duì)應(yīng)兩位進(jìn)行加法

DAA

;BCD數(shù)加法調(diào)整

MOV BYTEPTRX[DI],AL ;保存結(jié)果

INC DI ;修改指針

LOOP NEXT ;計(jì)數(shù)和循環(huán)控制

MOV AX,4C00H INT 21HCODE ENDS END START第8頁(yè),課件共15頁(yè),創(chuàng)作于2023年2月

程序運(yùn)行后,(X)=45791244H,結(jié)果正確。如果把“INCDI”指令改為“ADDDI,1”,運(yùn)行后

(X)=45781144H,結(jié)果錯(cuò)誤。用TD單步執(zhí)行程序,發(fā)現(xiàn)78H+66H和56H+55H均產(chǎn)生了進(jìn)位

(CF=1),執(zhí)行“ADDDI,1”指令后,CF均被清零,低位的

進(jìn)位沒有傳遞到高位,導(dǎo)致了錯(cuò)誤的發(fā)生。

“INCDI”指令不影響CF,程序能夠正常運(yùn)行,這一點(diǎn)在設(shè)計(jì)

指令系統(tǒng)時(shí)已經(jīng)作了充分的考慮。從本例可以看到,使用CF傳遞進(jìn)位時(shí),要細(xì)心地選擇所使用

的指令。匯編語(yǔ)言程序員,應(yīng)該十分注意標(biāo)志位的狀態(tài)。

第9頁(yè),課件共15頁(yè),創(chuàng)作于2023年2月(1)AAA(ASCIIAdjustafterAddition)非壓縮十進(jìn)制加法調(diào)整格式:AAA功能:對(duì)AL中的加法結(jié)果進(jìn)行非壓縮BCD數(shù)運(yùn)算調(diào)整例:’9’+’8’MOV AL,‘9’;非壓縮BCD數(shù)9裝入AL,使用ASCII格式

ADD AL,‘8’;按照二進(jìn)制格式相加,(AL)=71H,AF=1AAA ;非壓縮BCD加法調(diào)整,(AL)=07H,CF=1說明:調(diào)整之前先進(jìn)行二進(jìn)制加法,和必須在AL中;

低4位的進(jìn)位用兩種方式同時(shí)表達(dá):CF=1,AH=AH+1。非壓縮BCD數(shù)運(yùn)算第10頁(yè),課件共15頁(yè),創(chuàng)作于2023年2月if(AL低4位>9或AF=1)then AL=AL+06H; AH=AH+1; AF=1; CF=1;else AF=0; CF=0;endif AL=ALAND0FH ;AL高4位清零AAA調(diào)整算法:第11頁(yè),課件共15頁(yè),創(chuàng)作于2023年2月格式:AAS功能:對(duì)AL中的減法結(jié)果進(jìn)行非壓縮BCD數(shù)運(yùn)算調(diào)整例:’6’-’8’MOVAL,‘6’;非壓縮BCD數(shù)6裝入AL,使用ASCII格式

SUB AL,‘8’;按照二進(jìn)制格式相減,(AL)=0FEH,AF=1AAS ;進(jìn)行非壓縮BCD加法調(diào)整,(AL)=08H,CF=1說明:調(diào)整之前先進(jìn)行二進(jìn)制減法,差在AL中。 低4位的借位用兩種方式同時(shí)表達(dá):CF=1,AH=AH-1。(2)AAS(ASCIIAdjustafterSubtraction)非壓縮十進(jìn)制減法調(diào)整第12頁(yè),課件共15頁(yè),創(chuàng)作于2023年2月if(AL低4位>9或AF=1)then AL=AL-06H; AH=AH-1; AF=1; CF=1;else AF=0; CF=0;endif AL=ALAND0FH ;AL高4位清零AAS調(diào)整算法:第13頁(yè),課件共15頁(yè),創(chuàng)作于2023年2月格式:AAM功能:對(duì)AX中的乘法結(jié)果進(jìn)行非壓縮BCD數(shù)運(yùn)算調(diào)整調(diào)整算法:AH=AX/10,AL=AXmod10例:6×7MOV AL,6 ;非壓縮BCD數(shù)6裝入AL,高4位必須為0MOV BL,7 ;非壓縮BCD數(shù)7裝入BL,高4位必須為0MUL BL ;按照二進(jìn)制格式相乘,(AX)=002AHAAM ;非壓縮BCD乘法

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論