2013-07-26 8 views
6

ich auf diesem Code-Snippet kam:"global main" in Assembly

main: ;tell linker entry point 

aber ich scheine nicht zu:

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

und dann gibt es eine Funktion main nach dieser Zeile genannt ist versteh was global main bedeutet, und der Kommentar scheint nicht viel zu helfen ...

ich verwende this site als Verweis auf Assembler-Programmierung.

kann ich analysieren, dass main auf die Funktion Haupt bezieht, aber ich verstehe nicht, die Verwendung des global Stichwort ...

Ihnen im Voraus danken ...

Antwort

8

global main bedeutet im Grunde, dass die Das Symbol sollte für den Linker sichtbar sein, da andere Objektdateien es verwenden. Ohne dieses Symbol wird das Symbol main als lokal für die Objektdatei betrachtet, mit der es assembliert wurde. Es wird nicht angezeigt, nachdem die Assemblydatei zusammengestellt wurde.

+0

okay, so ist das Haupt genau wie ein Startpunkt in einem Programm ähnlich wie C (++) 's int main()? – tenstar

+0

Und verwenden wir global nur, um es für alle Objektdateien sichtbar zu machen? – tenstar

+0

In diesem Fall kann ja - aber 'global' für jede Funktion verwendet werden. –