我接受用户输入,然后从1开始并打印数字,直到达到他们的数字。我已经检查过了,获取号码没有问题,它只有在存在问题的循环中。我认为问题可能与我如何与其他寄存器复制多个寄存器有关,但是我对此并不陌生,并不真正知道问题出在哪里。我试过使用调试器,但它不会让我一步步循环,它的执行就像文件的正常运行一样。另外,如果我错了,请纠正我,但是到目前为止,我收集到的是每次输出一个数字都会重置r1,这就是为什么我将r1复制到r2中以保存原始数字,对吗? / p>
cpy r2,r1 @copy r1 into r2 so that when output happens, I dont lose r1
mov r4,#0 @loop counter
loop:
cmp r4, r2
bgt myexit @if value in r1 is > 100, exit
cpy r1,r4 @copy loop number into r1 for output
ldr r0, = printline @print number
bl printf
add r4,r4,#1 @increment counter
b loop
myexit:
mov r7, #0x01 @ returns control to OS
svc 0
.data
.balign 4
test:.asciz "%d\n"
.balign 4
numsumstring: .asciz "Number \t Sum\n\n"
.balign 4
numInputPattern: .asciz "%d"
.balign 4
printline: .asciz "value is %d\n"