加法[彙編源程式用語]

加法,彙編源程式用語。

執行下面的指令:

MOV A, #86H

ADD A, #47H

結果:(A)=0CDH,CY=0,AC=0

所得結果並不是BCD碼,若接著執行以下指令:

DA A

則結果:(A)=33H,CY=1,AC=1

加數分別放在R2,R3中,將R2和R3相加的和放在R7中。

ADD: MOV A,R3 ;將被加數R3存入A中

ACALL CMPT ;調用求補函式CMPT求R3的(存放在A中)補碼

MOV R3,A ;又將R3的補碼放入R3中

MOV A,R2 ;將加數R2存入A中

ACALL CMPT ;調用求補函式CMPT求R2的補碼,R2的補碼存放在A中

ADD A,R3 ;將二者的補碼相加

JB OV,OVER ;如果溢出標誌位OV為一,即溢出(即判斷是否超出數值表示範圍),則跳轉到OVER,即結束 ,

ACALL CMPT ;因為補碼相加之後還是補碼,為了得到相加之和的原碼,還需要求補

MOV R7,A ;將A中的最終結果存放在R7中

OVER: RET ;偽指令RET沒有什麼實際意義

CMPT: CPL A ;對A中的內容逐位求反

INC A ;A中的內容加1

熱門詞條

聯絡我們