所以我最近收到了一个第二年计算机科学模块的项目,我们在那里做计算机体系结构。我们被指示编写 ARM 汇编代码以输出 n=15 和 n=30 的斐波那契数列。
我曾尝试在线查看多个资源,但 ARM 的使用不那么广泛,在 2020 年也不再受支持。我已经能够编译和运行我的代码,但是它告诉我“分段错误”并输出错误的数字(139)。
上周末我一直被困,尝试了多次修复,但没有运气。如果有人可以指导我正确的方向,或者帮助我识别我的逻辑或语法错误,那就太好了。我将在下面发布代码,并在此先感谢您!!!
.global main
.func main
main:
LDR R5,=0x50000000 ; load mem address
MOV R1,#5 ; number comparisons
.loop:
LDR R2,[R5] ; load 1st number
ADD R6, R5,#04 ; increment address to next number
LDR R3, [R6] ; load 2nd number
ADD R4, R2, R3
STR R4, [R6,#4] ;store in next mem location
MOV R5, R6
SUBS R1, #01 ; decrement counter
BNE .loop ; loop mechanism
NOP
.endfunc
BX LR