匯編語(yǔ)言AAD,DAA,DAS用法解析
這篇文章主要介紹了匯編語(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í)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Go 中的循環(huán)是如何轉(zhuǎn)為匯編的(方法詳解)
這篇文章主要介紹了Go 中的循環(huán)是如何轉(zhuǎn)為匯編的,本文通過(guò)循環(huán)的匯編代碼給大家講解的非常詳細(xì),代碼簡(jiǎn)單易懂,非常不錯(cuò),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05匯編語(yǔ)言基礎(chǔ)理解計(jì)算機(jī)底層技術(shù)原理
這篇文章主要為大家介紹了匯編語(yǔ)言基礎(chǔ),理解計(jì)算機(jī)底層原理,想要成為高級(jí)程序員,我們必須要學(xué)會(huì)匯編語(yǔ)言,匯編語(yǔ)言是非常重要的計(jì)算機(jī)底層技術(shù),一般用于底層的編寫2021-11-11匯編語(yǔ)言指令大全 X86和X87匯編指令大全(帶注釋)
匯編指令集太多,如果不用就會(huì)忘記,所以將i處理器官方的指令集大全寫到博客上,有需要的人可以參考一下2021-10-10UEFI開(kāi)發(fā)實(shí)戰(zhàn)用戶交互界面使用說(shuō)明UNI文件
這篇文章主要為大家介紹了UEFI開(kāi)發(fā)實(shí)戰(zhàn)用戶交互界面使用說(shuō)明UNI文件,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06匯編 函數(shù)調(diào)用的實(shí)現(xiàn)
這篇文章主要介紹了匯編 函數(shù)調(diào)用的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02匯編語(yǔ)言AND指令實(shí)現(xiàn)對(duì)兩個(gè)操作數(shù)進(jìn)行邏輯(按位)與操作
這篇文章主要介紹了匯編語(yǔ)言AND指令實(shí)現(xiàn)對(duì)兩個(gè)操作數(shù)進(jìn)行邏輯(按位)與操作,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01從匯編代碼開(kāi)始全面解析synchronized還原最真實(shí)的偏向鎖
這篇文章主要為大家介紹了從模板解釋器匯編源碼開(kāi)始分析還原最真實(shí)的偏向鎖實(shí)現(xiàn),解釋monitorenter字節(jié)碼命令的方法開(kāi)始,從匯編代碼開(kāi)始全面解析synchronized2022-02-02