我想在BCD中添加两个数字。如何使用进位逐位添加两个十六进制值?

时间:2018-05-05 00:55:12

标签: assembly arm keil

我在R0和R1中加载了两个十六进制值。然后我将R2设置为寄存器,我的总和应该结束。我如何一点一点地添加这些十六进制值?我试图传递两个数字以及存储结果的位置。然后将结果存储在ram中并传回该地址,如果没有溢出则传回0,如果有溢出则传回1.

这是在ARM程序集中

AREA mydata,DATA
SUM     DCD 0
        AREA mycode,CODE
        THUMB
        EXPORT __main
NUM1    DCD     0x275
NUM2    DCD     0x963
__main  PROC
        LDR R0,=NUM1    
        LDR R0,[R0]     ;R0 has NUM1
        LDR R1,=NUM2        
        LDR R1,[R1]     ;R1 has NUM2
        LDR R2,=SUM     
        LDR R2, [R2]    ;R2 has SUM 
        BL  adder
exit    B exit
        ENDP
adder   PROC
        BX LR   ;branch and exchange instruction set LR holds the return address  
        ENDP
        END

0 个答案:

没有答案