Я пытаюсь добавить два числа в BCD. Как мне идти о добавлении двух шестнадцатеричных значений по крупицам с переносом? - PullRequest
0 голосов
/ 05 мая 2018

Я загружаю два шестнадцатеричных значения в 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
...