回覆列表
  • 1 # zmlpp45784

    這是51微控制器的一條加法指令,可以完成帶進位Cy的加法運算。指令的形式是:ADDCA,源運算元,加法是在A中完成的,加法計算時的兩個數一個數是A中原有的數,另一個數即是源運算元,同時連同進位Cy一起加進來。還是舉例說明吧:如計算56A8H+2368H,這麼寫程式:MOVA,#0A8H;先把第一個數的低8位A8H送AADDA,#68H;與另一個數的低8位相加,即A(A8H)+68H,加法結果是A=10H,因結果超過了255(FFH)則進位Cy=1,即結果是110HMOV30H,A;把低8位結果送到30H單元儲存起來MOVA,#56H;再把第一個數的高8位送A,準備計算高8位數ADDCA,#23H;與另一個數的高8位相加,這時要同時把低8位的進位Cy=1加進來,即A(56H)+23H+1(因Cy1),則A=7AH,MOV31H,A;最後將高8位的計算結果送到31H單元儲存。最終結果是7A10H,這必須要計算兩次,也要用兩個單元來儲存。如上可見,先計算低8位時,用ADD,是不帶進位,因低8位加時還沒有進位,而計算高8位時,就必須帶進位的加法了,必須用ADDC了,因低8位加時有進位,假如沒有進位,也要用ADDC,但這時的Cy=0,加上0就是低8位沒有進位。還有一種情況是多個8位數相加,因相加的結果超過了8位數(255),所以,每一次加法也必須用帶進位加法計算,即必須用ADDC了。

  • 中秋節和大豐收的關聯?
  • 段譽跟虛竹結拜的時候,在喬峰不知情的情況下把他也算在內了,這樣好嗎?