簡體   English   中英

為什么這8出現在我的匯編代碼中?

[英]Why does this 8 appear in my assembler code?

這是我的匯編代碼,當我運行它時,會出現一個隨機的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

在此處輸入圖片說明

您沒有像verse那樣將verse2終止為null,因此它將繼續打印文本,直到找到0字節為止。

8可能是第一條指令的一部分,它可能以0x38 0x00 ...開始,0x38是'8'的ASCII碼。

不確定SWI 3在不可打印的情況下會做什么,但是可能在1-31范圍內的任何值中都有內存,並且被忽略了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM