Assembly 为什么这8出现在我的汇编代码中?

Assembly 为什么这8出现在我的汇编代码中?,assembly,Assembly,这是我的汇编代码,当我运行它时,随机出现一个8,我不知道如何摆脱它 B main number DEFW 4 verse DEFB " men went to mow\nWent to mow a meadow\n",0 verse2 DEFB " men," ALIGN main ADR R0,number ;puts address of number into R0 SWI 4 ;prin

这是我的汇编代码,当我运行它时,随机出现一个8,我不知道如何摆脱它

    B main

number  DEFW    4
verse   DEFB    " men went to mow\nWent to mow a meadow\n",0
verse2  DEFB    " men," 



    ALIGN


main    ADR R0,number   ;puts address of number into R0
        SWI 4           ;prints value in number

        ADR R0,verse    
        SWI 3           ;prints verse

        ADR R0,number
        SWI 4           ;prints value number

        ADR R0,verse2   ;places the address of verse to R0
        SWI 3           ;prints verse2

        SWI 2

您没有像您那样将
verse2
终止为空,因此它将继续打印文本,直到找到0字节为止

8很可能是第一条指令的一部分,它可能以
0x38 0x00…
开头,0x38是“8”的ASCII码


不确定在不可打印的情况下,
SWI 3
会做什么,但可能在1-31范围内的任何位置都有内存,并且会被忽略。

您没有像
verse
那样空终止
verse2
,因此它会一直打印文本,直到找到0字节为止

8很可能是第一条指令的一部分,它可能以
0x38 0x00…
开头,0x38是“8”的ASCII码

不确定在不可打印的情况下,
SWI 3
会做什么,但可能在1-31范围值之间的任何位置都有内存,并且会被忽略