我需要使用 x86 64 位 intel
section .text
global _start
_start:
mov rax, 1
mov rdi, 1
mov rsi, "hello"
mov rdx, 5
syscall
mov rax, 60
xor rdi, rdi
syscall
我希望在终端中打印出 hello 。感谢您的帮助
该说明
mov rsi, "hello"
对于您想要执行的操作无效。
相反,您应该定义一些内存来保存要打印的内容,然后使用它的地址加载
rsi
,例如:
section .text
global _start
_hello: db "hello", 10
_hello_sz: equ $ - _hello
_start: mov rax, 1
mov rdi, 1
mov rsi, _hello
mov rdx, _hello_sz
syscall
mov rax, 60
xor rdi, rdi
syscall
编译并运行此结果如下:
pax@hades> nasm -f elf64 -o progs.o progs.s
pax@hades> ld -o progs progs.o
pax@hades> ./progs
hello