为什么添加空格会中断ARM汇编中的字符串?

时间:2018-11-14 01:02:47

标签: string assembly arm scanf

我正在尝试通过以下方式使用scanf

.data

.balign 4
prompt: .asciz "Enter a string: "

.balign 4
scan: .asciz "%s"

.balign 4
string_in: .word 0

.text

.global main

main: 
  ldr r0, addr_scan
  ldr r1, addr_string
  bl scanf

我稍后还要在调用子字符串函数之前输入两个数字。当我输入没有空格的字符串时,该程序将运行。它提示我输入字符串,然后提示输入两个数字。但是,如果输入没有空格的字符串,例如“ test1 test2”,则会看到提示输入数字的提示,但不允许输入,传递给子字符串函数的参数仅为“ test1”。我认为“%s”格式允许使用空格,因此我希望有人可以向我解释为什么会这样。

0 个答案:

没有答案