下面的小程序用于计算前20个斐波那契数
area exam04, code, readonly
N equ 20
M equ 4*N
fib space M
entry
start ldr r0, =fib
mov r1, #1
mov r2, #1
str r1, [r0]
str r2, [r0]
loop add r3, r1, r2
str r3, [r0]
mov r1, r2
mov r2, r3
cmp r0, #fib+M
blt loop
stop b stop
end
编译时出现错误提示:Error: L6286E: Value(0x8000) out of range(0 - 0xff) for relocation #0 (wrt symbol exam04) in exam04.o (exam04)
指示发生错误的指令是:cmp r0, #fib+M
我的本意是取缓冲区fib偏移M个字节的地址,把fib装入寄存器在加偏移固然也可以,但我想直接在汇编阶段也应该可以由汇编器计算这个地址,不知道应该如何书写这个地址?谢谢。
|