Also dass man in ASM keine Strukturen benutzen kann ist mir neu, denn wer kennt nicht den Netwide Assembler (NASM), da ist das eindeutig möglich
.
Aber zu der Frage, ob Asm oder C, ich glaube der schwerwiegendste Faktor ist die Fehlersuche und das umändern von Code, da Asm-Code um weiten unübersichtlicher und unverständlicher ist als C-Code (es gibt auch Ausnahmen
). Portabilität ist glaube ich am Anfang eines Hobby OS ein ziemlich unbeutender Faktor, da es ein Heidenaufwand ist sich in eine Prozessor- und Computerarchitektur reinzuwühlen, geschweige denn 2! Um Assembler kommt man auf jeden Fall nicht herum, und wenn man darin tiefer einsteigt, versteht man immer besser wie was funktioniert, ist also meines Erachtens empfehlenswert.
Für komplexe Programmteile sollte man aber die Finger von Asm lassen und diese lieber in C Coden, das schont Zeit und Nerven.
Nun zum Real/Protected Mode, für beides sind beide Sprachen geeignet, nur nicht alle Compiler. Ich empfehle aber auf jeden Fall den Protected Mode (in 32bit Version), da man in diesem viel größere Gestaltungsmöglichkeiten hat als im Realmode. Es gibt keinen mir bekannten Vorteil im Realmode, und dass man da auf die BIOS-Interrupts zugreifen kann, ist eher eine Plage als etwas Gutes, es verleitet zu Faulheit -> lieber selbst die Treiber coden, macht mehr Spaß. Aber wer ein DOS2005 schreiben will, kann das natürlich tun.