汇编,ld找不到_start;

时间:2018-04-12 12:12:58

标签: assembly

我最近一直在尝试学习汇编,我有一个开始的汇编文件:

global _start
_start:

尝试链接时会抛出错误:

  

ld -o assemblyCode assembly.o -g

错误是:

  

ld:警告:找不到输入符号_start;

我还尝试在asm文件的开头添加一些其他命令,例如:

section .text
segment .text

所有产生相同的结果。我想知道我做错了什么,以至于链接器看不到_start:命令?

这是在Ubuntu上运行的,使用nasm来构建程序集文件。

1 个答案:

答案 0 :(得分:1)

很难在没有看到整个代码的情况下告诉

这是一个非常小的程序,你可以用作骨架:

section .text
        global _start       ;must be declared for using gcc
_start:                     ;tell linker entry point
        mov     edx, len    ;message length
        mov     ecx, msg    ;message to write
        mov     ebx, 1      ;fd to use is stdout
        mov     eax, 4      ;sys_write
        int     0x80        ;call kernel
        mov     eax, 1      ;sys_exit
        int     0x80        ;call kernel

section .data

msg     db      'Hello, stack overflow!',0xa     ; say hello to the guys
len     equ     $ - msg                          ;length of the string

汇编(到目标文件中)使用nasm -g -f elf sample.s

链接ld -o sample sample.o