1

我找到了“hello world”并写了它。纳米你好.s

这段代码

.data
msg:
.string  "Hello, world!\n"
len = . - msg
.text
global _start
_start:
    movl    $len,%edx
    movl    $msg,%ecx
    movl    $1,%ebx
    movl    $4,%eax
    int     $0x80
    movl    $0,%ebx
    movl    $1,%eax
    int     $0x80

我已经完成了as -o hello.o hello.s 我给出了一个错误

hello.s:6: Error: no such instruction: global _start

delete global _start.

我已经搞定了

ld -s -o hello.o hello*

error 

ld: hello: No such file: No such file or directory

我错在哪里?

p/s debian,amd64。

4

1 回答 1

2

尝试.globl _start.global _start

start如果您在入口点遇到问题,您可以尝试不加下划线。

最后,如果您正在制作 64 位可执行文件,您可能需要使用不同的系统调用接口,而int 0x80不是syscall. 更多关于这里

于 2013-02-15T19:19:45.227 回答