过去几天我在这里的一些人的帮助下做了一个软件,现在代码已经完成但似乎有一些错误,因为它不是它所支持的。
代码如下:
add r3,#1
b .loop_ini
.add_row:
add r2,#1
mov r3,#0
b .loop_ini
LDR r2,=0x0019660D
umull r4,r5,r1,r2 @;RLo,RHi,N,M; r5 contains 32low bits from
.while_end:
mov r0,r2 @;Movemos el resultado del modulo a r0
pop {r1-r2,pc} @;restores modified registers and returns
.end
有没有人发现任何错误?我想但是不确定在将随机值插入矩阵时可能会出现错误。
由于
答案 0 :(得分:1)
好吧,因为您没有提供有关代码的预期功能的大量信息,我需要进行一些猜测,但首先引起我注意的是:
str r6, [r0]
据我所知,r0应该是随机值,r6应该是保存到的地址。
您必须在str
中交换这两个,因为r0现在用作地址,r6用作要存储的值。
您还必须使用strb
而不是str
,至少看起来您希望使用字节,而不是完整的32位字。
我没有进一步调查,可能会有更多问题。一般来说,代码似乎不是由具有ARM组装经验的人编写的,它有很大的优化空间。 TBH,除非你有一个很好的理由使用汇编,你应该考虑切换到C或其他高级语言。一个合适的编译器将为您生成更好的代码,而不会让您头疼。