Xav*_*nsa -1 assembly arm cortex-m
我的主要源文件:
L0 LDR R0, =prompt
BL WriteString ;print prompt
BL ReadInt ;R0 = n
CMP R0, #0
BGE L1
LDR R0, =res0 ; invalid input
BL WriteString
B L0
L1 MOV R1, #2
L2 UDIV R2, R0, R1
MLS R2, R1, R2, R0
CBZ R2, L3
BL WriteInt
ADD R1, #1
CMP R1, R0
BLT L2
L3 SUB R0, #1
CBZ R0, L0 ;Error: A1176E: Branch offset 0xFFFFFFC8 out of range.
B L1
prompt DCB "Enter a positive integer: ", 0
res0 DCB 13, 10, "Invalid input", 13, 10, 0
ALIGN
END
Run Code Online (Sandbox Code Playgroud)
我也遇到了跳出 L2 循环的问题。任何将此代码改进为工作顺序的建议将不胜感激。