我目前有一项作业,要求我向用户询问1到999之间的数字。当用户输入该数据时,还会使用用户提供的输入保存换行符。由于用户从stdin输入数据,因此将其存储为字符串。我正在努力弄清楚如何将该字符串转换为正确的整数。这就是我到目前为止所拥有的。任何帮助表示赞赏。
.global _start
_start:
bl read
ldr r0, =input
ldr r3, =number
_convert:
ldr r1, [r0], #1
cmp r1, #'\n'
beq _exit
sub r1, r1, #48
strb r1, [r3], #1
_exit:
mov r7, #1
swi 0
read:
mov r7, #3
mov r0, #0
mov r2, #4
ldr r1, =input
swi 0
bx lr
.data
input:
.space 4
number:
.space 3 //This is 3 because we are not saving the newline char