錯誤:ARM 的行尾出現垃圾 -as 和 -o 錯誤 (Error: Junk at end of line -as and -o error with ARM)


問題描述

錯誤:ARM 的行尾出現垃圾 ‑as 和 ‑o 錯誤 (Error: Junk at end of line ‑as and ‑o error with ARM)

我正在嘗試編寫我的第一個 ARM 程序,當我嘗試運行“as ‑o labl1.o lab1.s”時出現此錯誤

lab1.s:3: Error: junk at end of line, first unrecognized character is `s'

我非常不確定自己做錯了什麼在這裡,因為我唯一使用 s 的時間是在我的 2 個字符串中,並且對我出錯的代碼位置感到非常困惑。


@Data
.data
string1: .asciz
string2: .asciz

@Code
.text
.global main
.extern printf

main:

push {ip, lr}

push {r0, r1, r2}
ldr r0, =string1
mov r1, #34
mov r2, #56
bl printf
pop {r0,r1,r2}

push {r0}
ldr r0, =string2
bl printf
pop {r0}

pop {ip, pc}

非常感謝鏈接到有用的文檔或幫助調試,謝謝!


參考解法

方法 1:

You may be confusing the address of your strings and the values you want to assign them: As specified in GNU as documentation, the .asciz directive does require a string argument ‑ a slightly modified version of your code does assemble correctly:

.data
string1: .asciz "string1"
string2: .asciz "string2"

string1 is now the label for the address where bytes "string1\x00" are located, and string2 is the label for the address where bytes "string2\x00" are.

(by NardFrant)

參考文件

  1. Error: Junk at end of line ‑as and ‑o error with ARM (CC BY‑SA 2.5/3.0/4.0)

#putty #arm #machine-code






相關問題

如何從我的 Windows 機器運行安裝在 linux 機器上的 OpenGL 應用程序? (How can I run an OpenGL application installed on a linux machine from my windows machine?)

正確的自動命令以在膩子中連接到路由器 (correct autocommand to connect to router in putty)

Sun OS 5.10: Bash: Warna dan Daftar Direktori (Sun OS 5.10: Bash: Colors and Directory Listings)

WinSCP:服務器拒絕了我們的密鑰 (WinSCP: Server refused our key)

psftp 批處理腳本不起作用 (psftp batch script won't work)

'vagrant ssh' 不適用於 vagrant-multi-putty 插件 ('vagrant ssh' not working with the vagrant-multi-putty plugin)

uft type 命令沒有正確輸入 i 字符 (uft type command does not input i character properly)

使用 pscp 並獲得權限被拒絕 (Using pscp and getting permission denied)

當我在我的膩子程序中使用 vim 時,我遇到了一個自動完成問題 (When I using vim in my putty program, I have an autocomplete issue)

使用 c# System.IO.Ports.SerialPort 寫入 Cisco 交換機並不總是有效 (Write to Cisco Switch with c# System.IO.Ports.SerialPort doesn't always work)

錯誤:ARM 的行尾出現垃圾 -as 和 -o 錯誤 (Error: Junk at end of line -as and -o error with ARM)

在 PowerShell 中重用正在運行的 PuTTY 代理(選美) (Reuse in PowerShell a running PuTTY agent (pageant))







留言討論