我不断使用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
答案 0 :(得分:0)
实际上只有在C(和C ++)中,起点才被命名为main
。
默认的链接描述文件通常将start
或_start
用作实际的入口点。如果您重命名或添加正确的符号,则链接器不应对此抱怨。