Keil v5软件对ARM汇编程序进行debug调试时,有时会显示对某一地址单元无存储权限,使STR指令失效,这是因为我们在指令中没有给该地址的内存写权限。
而在程序中,我们只能通过DCD指令规定一个有限大小的读写空间,想要进行拓展,需要额外输入0数字,如上图中代码的倒数第二行,只能定义11个字大小的读写空间,想要扩展,需要在后面续写0,这十分不便,Keilv5软件内置了方便的内存管理工具,Memory Map。
下面为操作流程:
下为ARM汇编斐波那契数列的代码:
AREA test, CODE, READONLY
CODE32
LDR SP, =result
MOV R0, #1
STR R0, [SP]
MOV R1, #1
STR R1, [SP, #4]!
MOV R2, #0
LOOP
ADD R2, R0, R1
MOV R0, R1
MOV R1, R2
STR R2, [SP, #4]!
B LOOP
AREA res, DATA, READWRITE
result DCD 0,0,0,0,0,0,0,0,0,0,0
END