Frage

Ich fange an, einige Experimente in einen Kernel zu schreiben und Spaß dabei haben. Ich habe die Grund Boot-Loader erfolgen und die folgenden Anweisungen:

[BITS 16]
[ORG 0x0000]

In der Kernel-Tutorial, aber es beginnt mit:

[ORG 0x0000]
[BITS 16]

Ich frage mich, ob die Reihenfolge, in der diese Richtlinien gegeben werden einen Unterschied macht? Ich bin mit NASM Version 2.06rc2, OpenSUSE 11.2

War es hilfreich?

Lösung

Die neueste NASM ist in der Version 2.08, und die Beurteilung durch die Dokumentation auf der BITS Richtlinie ..

Die Reihenfolge sollte keinen Unterschied machen, da sie NASM sagen, eine Datei mit bestimmten Bedingungen zu erzeugen, wie 16 Bit verwenden und beginnen bei Null-Adressierung. Von ihm scheint NASM intelligent genug, um zu wissen, um welche Art von Ausgabe wird es erzeugen.

Andere Tipps

Es spielt keine Rolle, die man zuerst kommt, aber ich in der Regel dieser Ordnung in meinen Programmen folgen:

        cpu 8086
        bits 16
        org 256

(Weil bits 16 der Standard für Bin Ausgabeformat des NASM ist ich es in der Regel nicht explizit angeben, es sei denn, es gibt einige bits 32 Teile in einer Datei sind.)

By the way, sind die Formen mit Klammern die untere Ebene, nicht „user“ Formen dieser Richtlinien. https://www.nasm.us/xdoc/ 2.14.02 / html / nasmdoc6.html # section-6.1

  

Die BITS-Richtlinie hat eine genau äquivalente primitive Form, [BITS 16], [BITS 32] und [BITS 64]. Die Benutzerebene Form ist ein Makro, die keine Funktion hat anders als die primitive Form zu nennen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top