linux - 汇编代码在 Linux 上不起作用

标签 linux assembly

我正在尝试使用 JWasm 编译器在 Linux 中运行以下汇编代码。但是对于所有命令,它说,找不到命令。为什么?并在以“;”开头的行中返回错误。它是一种评论行吗?我可以删除这条线吗?谢谢。

;--- "hello world" for 64-bit Linux, using SYSCALL.
;--- assemble: JWasm -elf64 -Fo=Lin64_1.o Lin64_1.asm
;--- link:     gcc Lin64_1.o -o Lin64_1


stdout    equ 1
SYS_WRITE equ 1
SYS_EXIT  equ 60

.data

string  db 10,"Hello, world!",10

.code

_start:
mov edx, sizeof string
mov rsi, offset string
mov edi, stdout
mov eax, SYS_WRITE
syscall
mov eax, SYS_EXIT
syscall

end _start

最佳答案

我不熟悉 JWasm,但通常未缩进的条目是汇编指令而不是指令。

您想为任何实际的汇编器指令(CPU 将运行的东西)放置一个(空格/制表符),而不是汇编器指令(汇编器用来帮助您的东西)

关于linux - 汇编代码在 Linux 上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4228470/

相关文章:

linux - 如何在 cronjob 脚本中给用户输入

c++ - 如何在本地生成像干净组装一样的godbolt?

assembly - 为什么要将他已经拥有的相同值复制到 rax 中?

c++ - 如何用共享库替换可执行 C++ 程序的函数?

linux - Apache 2.4.23 未定义对 CRYPTO_malloc_init 的引用?

linux - 是否可以按确切日期查找文件然后对结果文件执行 tar 命令?

function - 如何从程序集中调用 Rust 函数?

performance - ARM NEON : Tools to predict performance issues due to memory access limited bandwidth?

gcc - 如何使用 gcc 汇编命令(.type)?

c - 所有线程未终止时的 Valgrind 输出