Was macht “.=" mittelwert in GAS
Frage
Ich untersuche den GNU GRUB-Quellcode und in /grub-core/boot/i386/pc/*.S
dateien gibt es viele .=
Kartenmarkierungen.Hier ist einer von /grub-core/boot/i386/pc/boot.S
datei (Zeile 409-414):
/*
* Windows NT breaks compatibility by embedding a magic
* number here.
*/
. = _start + GRUB_BOOT_MACHINE_WINDOWS_NT_MAGIC
Was ich wissen möchte ist, was die .=
Mittel.
Lösung
In GAS, und vielleicht auch in anderen Monteuren, das spezielle Symbol .
bezieht sich auf die aktuelle Adresse, in die der Assembler assembliert.Eine Anweisung wie die obige steuert, wo die Bytes für den folgenden Code zusammengesetzt werden.
Die Dokumentation für die .
betreiber ist hier.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow