在ARM程序集中将String转换为Int

时间:2017-05-05 06:27:45

标签: assembly arm atoi

我目前有一项作业,要求我向用户询问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

0 个答案:

没有答案