警告:找不到条目符号_start;默认为0000000008048060

时间:2018-09-24 12:35:02

标签: assembly x86 nasm

我不断使用NASM收到错误消息,我正在使用在线编译器:compileonline.com 这是我的代码。 (请注意,这是从另一个来源获得的)

    segment .text

    global main
main:

    xor     edx, edx
    mov     eax, 15
    mov     ecx, 3
    div     ecx
    xor     ecx, ecx
    mov     cx, ax
    mov ebx,1       ; arg1, where to write, screen
    mov eax,4       ; write sysout command to int 80 hex
    int 0x80        ; interrupt 80 hex, call kernel



exit:   mov eax, 1
    xor ebx, ebx 
    int 0x80

请解释我在做什么错,以及位置,以便我理解。 这是我的输出:

$nasm -f elf *.asm; ld -m elf_i386 -s -o demo *.o
ld: warning: cannot find entry symbol _start; defaulting to 0000000008048060
$demo

1 个答案:

答案 0 :(得分:0)

实际上只有在C(和C ++)中,起点才被命名为main

默认的链接描述文件通常将start_start用作实际的入口点。如果您重命名或添加正确的符号,则链接器不应对此抱怨。