Это мой сборочный уровень кода ...Что такое глобальный _start в языке ассемблера?
section .text
global _start
_start: mov eax, 4
mov ebx, 1
mov ecx, mesg
mov edx, size
int 0x80
exit: mov eax, 1
int 0x80
section .data
mesg db 'KingKong',0xa
size equ $-mesg
Выход:
[email protected]:~/Arena# nasm -f elf a.asm -o a.o
[email protected]:~/Arena# ld -o out a.o
[email protected]:~/Arena# ./out
KingKong
Мой вопрос Что такое глобальное _start используется для? Я попробовал удачу с Mr.Google, и я обнаружил, что он используется, чтобы сообщить начальную точку моей программы. Почему косяк мы просто имеем _start
сказать, где программа запускается как один, приведенные ниже, который производит любопытное предупреждения на экране
section .text
_start: mov eax, 4
mov ebx, 1
mov ecx, mesg
mov edx, size
int 0x80
exit: mov eax, 1
int 0x80
section .data
mesg db 'KingKong',0xa
size equ $-mesg
[email protected]:~/Arena# nasm -f elf a.asm
[email protected]:~/Arena# ld -e _start -o out a.o
ld: warning: cannot find entry symbol _start; defaulting to 0000000008048080
[email protected]:~/Arena# ld -o out a.o
ld: warning: cannot find entry symbol _start; defaulting to 0000000008048080
Возможный дубликат ["global main" в Assembly] (http://stackoverflow.com/questions/17882936/global-main-in-assembly) –