# 16-32-64 bit compilen



## N4pster (19. Dezember 2004)

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


----------



## stephsto (5. Januar 2005)

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


----------



## Kyoko (6. Januar 2005)

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


----------



## stephsto (11. Januar 2005)

einfach mal aus interesse was meinst du mit PM64 und FM

stephsto


----------



## Kyoko (11. Januar 2005)

Protectet Mode 64 und Flash Mode.


----------

