首頁>Club>
7
回覆列表
  • 1 # 使用者2953413550839

    BCD碼的運演算法則  

    BCD碼的運算規則:BCD碼是十進位制數,而運算器對資料做加減運算時,都是按二進  

    制運算規則進行處理的。這樣,當將 BCD碼傳送給運算器進行運算時,其結果需要修正。  

    修正的規則是:當兩個BCD碼相加,如果和等於或小於 1001(即十進位制數 9),不需要修  

    正;如果相加之和在 1010 到1111(即十六進位制數 0AH~0FH)之間,則需加 6 進行修正;如  

    果相加時,本位產生了進位,也需加 6 進行修正。這樣做的原因是,機器按二進位制相加,  

    所以 4 位二進位制數相加時,是按“逢十六進一”的原則進行運算的,而實質上是 2 個十進  

    制數相加,應該按“逢十進一”的原則相加,16 與10相差 6,所以當和超過 9或有進位時,  

    都要加 6 進行修正。下面舉例說明。   【例 1.3】 需要修正 BCD碼運算值的舉例。   

    (1) 計算 5+8;(2) 計算 8+8   

    解:(1) 將 5 和 8 以 8421 BCD輸入機器,則運算如下:   

    0 1 0 1   

    +) 1 0 0 0   

    1 1 0 1 結果大於 9   

    +) 0 1 1 0 加 6 修正   

    1 0 0 1 1 13 的 BCD碼   

    結果是 0011,即十進位制數 3,還產生了進位。5+8=13,結論正確。   

    (2)將8以8421 BCD輸入機器,則運算如下:  

    1 0 0 0  

    +)1 0 0 0   

    1 0 0 0 0 結果大於9  

    +)0 1 1 0 加6修正  

    1 0 1 1 0 16的BCD碼  

    結果是0110,即十進位制的6,而且產生進位。8+8=16,結論正確。  

    微機原理程式碼: (AL=BCD 5,BL=BCD 8) 設AH=0,則  

    ADD AL,BL  

    AAA  

    結果為 AX=0104H,表示非壓縮十進位制數,CF=1,AF=1,AH=1,AL=1  

    使用AAA指令,

  • 中秋節和大豐收的關聯?
  • 買品牌電腦好還是請專業人士組裝電腦好?