16-32-64 bit compilen

N4pster

Grünschnabel
Hallo,
was heißt das eigentlich in 16-32 oder 64 bit compilen ?
Ein Beispiel, wenn ich jetzt ein Betriebssystem schreiben würde und möchte dies dann auf dem Athlon 64 bit laufen lassen geht das doch nicht, weil es ja in Assembler nur 32 bit gibt, kann mir da jemand helfen und einen Assembler empfehlen mit dem ich 64 bit assemblieren kann, aber bitte nichts das wieder von Microsoft abhängt so wie masm oder so, ich einen "echten" Assembler ?

Danke schon mal
 
Hi,

wieder mal ein OS-Coder...

Also 16-, 32- und 64 Bit bedeutet im normalfall die Bitbreite der Befehle die der Prozessor erhält. Bei einem 32-Bit Prozessor ist der befehl "mov" zum beispiel immer in 32 bit große Teile aufgeteilt. Du kannst bei fast jedem Assembler die größe der Opcodes angeben mit der Bit-direktive z.Bsp.:
[BITS 16]
[BITS 32]

über folgendes bin ich mir nicht sicher;

Beim AMD 64 sind lediglich die Register, also ax, bx... 64 Bit breit aber nicht die Opcodes. Das ist und bleibt ein 32 Bit Prozessor (bin mir aber nicht sicher).

Und noch was. Jeder Prozessor ist abwärtscompatibel. Das heißt selbst der neueste Prozessor versteht 16-Bit Opcodes.

gruß stephsto
 
Also, AX, BX und so weiter sind sicher nie 64-Bit breit, die waren schon immer 16 Bit und bleiben es auch, weil sie für den RM gemacht sind, 64-Bit Prozessoren haben zusätzliche register mit 64-Bit breite.

Und das andere, es kommt drauf an. im PM64 sind es nur die Register, im FM ists auch der Opcode.

greez,
Kyoko12
 

Neue Beiträge

Zurück