BCD碼調整指令是一條專用的指令
發布時間:2016/7/10 18:12:25 訪問次數:1861
BCD碼調整指令是一條專用的指令,用來實JCP8039-3現s021BCD碼加法結果的調整,此指令為DA A
這條指令對累加器A參與的BCD碼加法運算結果進行十進制調整,使累加器A中的內容調整為兩位壓縮型BCD碼的數,同時PsW中的CY表示結果的百位值。
使用時必須注意,它只能跟在加法指令之后。
DA A調整步驟:若A中的低4位大于9或輔助進位標志AC為“1”,則低4位加6;同樣,A中的高4位大于9或進位標志CY為“1”,高4位加6。
在gOc51中沒有十進制減法調整指令,因此要用適當的方法編寫程序段來進行十進制減法運算的BCD碼調整。
【例4.2"若A=49H,執行指令ADD A,#6BH的標志位結果是什么?
解 直接相加: 。 由于兩個正數相加結果為負數,表示出現了溢出,故oV=1;同時可以看到進位標志CY=0。在相加過程中,由于第3位相加產生對第4位的進位,故AC=1。又因為相加后A中的l的數目為偶數,故P=0。所以,結果是:A=B4H(溢出),oV=l,CY=0,AC=1,P=0。
BCD碼調整指令是一條專用的指令,用來實JCP8039-3現s021BCD碼加法結果的調整,此指令為DA A
這條指令對累加器A參與的BCD碼加法運算結果進行十進制調整,使累加器A中的內容調整為兩位壓縮型BCD碼的數,同時PsW中的CY表示結果的百位值。
使用時必須注意,它只能跟在加法指令之后。
DA A調整步驟:若A中的低4位大于9或輔助進位標志AC為“1”,則低4位加6;同樣,A中的高4位大于9或進位標志CY為“1”,高4位加6。
在gOc51中沒有十進制減法調整指令,因此要用適當的方法編寫程序段來進行十進制減法運算的BCD碼調整。
【例4.2"若A=49H,執行指令ADD A,#6BH的標志位結果是什么?
解 直接相加: 。 由于兩個正數相加結果為負數,表示出現了溢出,故oV=1;同時可以看到進位標志CY=0。在相加過程中,由于第3位相加產生對第4位的進位,故AC=1。又因為相加后A中的l的數目為偶數,故P=0。所以,結果是:A=B4H(溢出),oV=l,CY=0,AC=1,P=0。
熱門點擊