1

I found "hello world" and wrote it. nano hello.s

this code

.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

I've done as -o hello.o hello.s I've given an error

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

delete global _start.

I've done

ld -s -o hello.o hello*

error 

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

Where am I mistaking?

p/s debian, amd64.

4

1 に答える 1

2

.globl _startまたはを試してください.global _start

startエントリポイントで問題が発生した場合に備えて、下線なしで試すことができます。

最後に、64ビットの実行可能ファイルを作成する場合は、おそらく別のシステムコールインターフェイスを使用する必要がありますが、ではありませint 0x80syscall。詳しくはこちらをご覧ください。

于 2013-02-15T19:19:45.227 に答える