用ARM汇编语言编写一个程序,该程序将计算R2中32位数字的二进制补码。结果应该在寄存器R3中。
我是ARM编码的新手。我觉得我已经使事情复杂化了,这应该很简单。我想我的位置指示器错了。
Loop: SUB R0, [R2, R1], #1
SUB R1, R1, #1
CBNZ R0, Cont
LDRB [R3,R1], #1
B Exit
Cont: LDRB [R3,R1], #0
B Loop
Exit: SUB R0, [R2, R1], #1
SUB R1, R1, #1
CBZ R0, One
LDRB [R3,R1], #1
SUB R0, R1, #1
CBZ R0, Done
B Exit
One: LDRB [R3,R1], #0
SUB R0, R1, #1
CBZ R0, Done
B Exit
Done: LSL R3