我的主要源文件:
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: ", …Run Code Online (Sandbox Code Playgroud)