添加循环ARM程序集rpi

时间:2017-10-23 20:54:56

标签: assembly arm

我对汇编非常新,并且在使用scanf获取用户输入时尝试添加循环内部。这是我的循环:

.data
.balign 4
format: .asciz "%d"
.balign 4
numCount: .word 0
.balign 4
counter: .word 0
.balign 4
prints: .asciz "%d\n"
.text

.global main
main:
ldr r5, =counter
mov r6, #0
bl loop
done:
ldr r0, =prints
//mov r1, r5
ldr r1, [r5]
bl printf

mov r7, $1
svc $0
loop:
    ldr r0, =format
    ldr r1, =numCount
    bl scanf
    ldr r1, =numCount


    add r6, r6, #1
    add r5, r5, r1


    cmp r6, #5
    beq done

    b loop

退出循环后,我尝试使用ldr r1, [r5]打印总和数(存储在r5?中),但是这会出现seg错误。如果我mov r1, r5它打印地址(我认为?),比如630150.我也尝试在添加之前将ldr r5, [r5]ldr r1, [r1]放在循环中但是这个段也出错了。当我尝试将寄存器的引用加载到另一个寄存器时,我怎么会出现段错误?

0 个答案:

没有答案