這篇文章主要介紹了匯編語(yǔ)言AAD,DAA,DAS用法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
AAD 為下面的除法做準(zhǔn)備 ,把AL 和 AH 兩個(gè)單BCD碼組成一個(gè)十進(jìn)制數(shù)
1、AAD(調(diào)整除)
5.2該指令是在作除法前用于調(diào)整寄存器AH和AL之值,它是把二個(gè)寄存器中單BCD碼組成一個(gè)十進(jìn)制數(shù)值,其調(diào)整規(guī)則如下:
AL←AH*10+AL,AH←0
受影響的標(biāo)志位:PF、SF和ZF(AF、CF和OF等都是無(wú)定義)
MOV AX, 0502H
MOV BL, 10D
AAD ;AH=0, AL=52H
DIV BL ;AH=2(余數(shù)), AL=5(商)
2、DAA(調(diào)整加十)
該指令是用于調(diào)整AL的值,該值是由指令A(yù)DD或ADC運(yùn)算二個(gè)壓縮型BCD碼所得到的結(jié)果。壓縮型BCD碼是一個(gè)字節(jié)存放二個(gè)BCD碼,低四位和高四位都是一個(gè)BCD碼。其調(diào)整規(guī)則如下:
- 如果AL的低四位大于9,或AF=1,那么,AL=AL+06H,并置AF=1;
- 如果AL的高四位大于9,或CF=1,那么,AL=AL+60H,并置CF=1;
- 如果以上兩點(diǎn)都不成立,則,清除標(biāo)志位AF和CF。
經(jīng)過(guò)調(diào)整后,AL的值仍是壓縮型BCD碼,即:二個(gè)壓縮型BCD碼相加,并進(jìn)行調(diào)整后,得到的結(jié)果還是壓縮型BCD碼。
受影響的標(biāo)志位:AF、CF、PF、SF和ZF(OF無(wú)定義)
MOV AL, 43H
MOV BL, 29H
ADD AL, BL ;AL=6CH,其不是壓縮型的BCD碼,因?yàn)榈退奈弧瓸‘不是BCD碼
DAA ;調(diào)整后,AL=72H,這是壓縮型的BCD碼,也有:43+29=72
3、DAS(調(diào)整減十)
該指令也是用于調(diào)整AL的值,AL是由指令SUB或SBB運(yùn)算二個(gè)壓縮型BCD碼所得到的結(jié)果。其調(diào)整規(guī)則如下:
- 如果AL的低四位大于9,或AF=1,那么,AL=AL-06H,并置AF=1;
- 如果AL的高四位大于9,或CF=1,那么,AL=AL-60H,并置CF=1;
- 如果以上兩點(diǎn)都不成立,則,清除標(biāo)志位AF和CF。
經(jīng)過(guò)調(diào)整后,AL的值仍是壓縮型BCD碼,即:二個(gè)壓縮型BCD碼相減,并進(jìn)行調(diào)整后,得到的結(jié)果還是壓縮型BCD碼。
受影響的標(biāo)志位:AF、CF、PF、SF和ZF(OF無(wú)定義)
MOV AL, 43H
MOV BL, 29H
SUB AL, BL ;AL=1AH,其不是壓縮型的BCD碼,因?yàn)榈退奈弧瓵‘不是BCD碼
DAS ;調(diào)整后,AL=14H,這是壓縮型的BCD碼,也有:43-29=14
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持html5模板網(wǎng)。