Autor Thema: lgdt Operand  (Gelesen 5034 mal)

scales of justice

  • Beiträge: 228
    • Profil anzeigen
Gespeichert
« am: 16. June 2006, 12:34 »
das hier steht in Tee-Jays Tutorial:

gdt:
limit dw 0
base dd 0


dort werden die entsprechenden Werte eingetragen, um sie dann zu laden:

lgdt [gdt]

in meiner Befehlsreferenz steht:

Zitat
Der Operand ist ein Zeiger auf eine Struktur


aber warum dann [gdt], damit würde doch der Wert der an gdt steht geladen,
aber der Befehl will laut der Referenz ja einen Zeiger,
dann müsste man doch

lgdt gdt

schreiben

Jidder

  • Administrator
  • Beiträge: 1 625
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 16. June 2006, 13:06 »
Das ist halt NASM-Syntax. Keine Ahnung warum die das so umsetzen. Intern wird ja die Speicherstelle an dem Offset [gdt] ausgelesen, und nicht irgendwas mit dem Offset gemacht, was durch die eckigen Klammern angezeigt wird.

Vielleicht ist es sorum einleuchtender: mov eax, gdt lädt auch nur das Offset nach eax, während mov eax, [gdt] den Inhalt nach eax lädt.

Der Schwerpunkt dieses Satzes liegt wohl auch nicht auf dem Offset, sondern auf der Struktur, weil ich mehrere Anleitungen gelesen habe, die darauf hindeuten, dass viele die Instruktion falsch interpretieren und immer sowas versuchen:

lgdt 0x17:0x10000

Wobei der Autoren dieses Codestücks damit anscheinend erreichen wollen, dass eine gdt mit basis 0x10000 und limit 0x17 geladen wird, was natürlich nicht geht.
Dieser Text wird unter jedem Beitrag angezeigt.

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 16. June 2006, 13:41 »
Zitat von: PorkChicken
Wobei der Autoren dieses Codestücks damit anscheinend erreichen wollen, dass eine gdt mit basis 0x10000 und limit 0x17 geladen wird, was natürlich nicht geht.

Ich finde es jetzt nicht so furchtbar natürlich, daß lgdt keine Immediate-Werte nimmt, sondern unbedingt vom Speicher lesen will... Wenn man es weiß, ist es ok, aber "natürlich" ist was anderes.
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

 

Einloggen