x86 NASM 'org' - Richtlinie Bedeutung

Ich bin nach diesem tutorial sowie einen ersten Ausflug in den bootloader/OS-Entwicklung für x86 mit NASM:

http://joelgompert.com/OS/TableOfContents.htm

Und ich bin auf Lektion 4, die so ist mein bootloader print "Hallo, Welt" string.
Ich bin nicht das Verständnis der Bedeutung der org Weisung (Richtlinie?).

Wie ich es verstehe, org definiert, wo das Programm ausgeführt wird, in den Speicher geladen wird. Dies ist erforderlich, wenn Sie jede Art von Etiketten oder relative Adressen im Programm.

Angenommen ich habe einen string definiert ein label, wie dies in meinem Programm:

szHello db 'Hello, world!', 0

Ist und ich dann später versuchen zu verweisen, dass das label wie folgt aus (nur relevanter Beispiele):

org 0x7c00
xor ax, ax
mov ds, 0
...
mov si, szHello
lodsb
...
int 0x10 ; Print first character of szHello

Meine Frage ist, warum ist das nicht äquivalent zu dieser? :

org 0
mov ds, 0x7c00
...
mov si, szHello
lodsb
...
int 0x10

Wenn ich das erste Beispiel, mein string richtig angezeigt. Das zweite Beispiel funktioniert nicht.

Zeiger auf entsprechende Dokumentation wäre auch sehr dankbar, wenn das Problem ist ein konzeptionelles problem von meiner Seite.

InformationsquelleAutor tdenniston | 2011-11-15
Schreibe einen Kommentar