2013-07-26 22 views
6

mi sono imbattuto in questo frammento di codice:"globale principale" in Assemblea

section .text 
    global main ;must be declared for linker (gcc) 

e poi c'è una funzione chiamata principale dopo questa riga:

main: ;tell linker entry point 

ma io non sembrano capire cosa significa global main e il commento non sembra essere di aiuto ...

sto usando this site come riferimento alla programmazione del linguaggio Assembly.

posso analizzare che main si riferisce alla funzione principale, ma non capisco l'uso della parola chiave global ...

grazie in anticipo ...

risposta

8

global main sostanzialmente significa che il il simbolo dovrebbe essere visibile al linker perché altri file oggetto lo useranno. Senza di esso, il simbolo main viene considerato locale per il file oggetto a cui è stato assemblato e non verrà visualizzato dopo il montaggio del file di assieme.

+0

ok, quindi il principale è proprio come un punto di partenza in un programma simile a int() di C (++)? – tenstar

+0

ed è che usiamo globale solo per renderlo visibile a tutti i file oggetto? – tenstar

+0

In questo caso, sì - ma 'global' può essere utilizzato per qualsiasi funzione. –