2010-05-19 28 views
1

Je veux savoir quelle est la manière standard d'écrire un noyau simple à compiler sur NASM?Ecrire un noyau OS dans l'assemblage avec NASM

Pour obtenir plus clairement: j'ai pu définir le bloc de code avec tous les façons suivantes:

[segment code] 
[segment .code] 
segment code 
segment .code 

[section code] 
[section .code] 
section code 
section .code 

Je dois savoir ce qui est le moyen standard pour le faire, et quelle est la différence entre les deux ...

Merci

+1

NASM a [excellente documentation] (http://www.nasm.us/doc/nasmdoc6.html#section-6.3). Quelle partie de cela avez-vous de la difficulté à comprendre? Vous avez plus de chances d'obtenir des réponses ici avec une question plus spécifique. –

+0

Voulez-vous vraiment dire * "noyau" *? Ou voulez-vous simplement dire un simple * programme *? –

+0

Je veux dire un noyau à démarrer (au lieu du système d'exploitation actuel ..) – Betamoo

Répondre

2

Votre question est la réponse dans la documentation MSNA, comme indiqué plus haut. La vérité est .. les sections ne signifient pas beaucoup quand vous chargez votre code. Un noyau à charger a besoin d'un chargeur de démarrage complet, et un chargeur de démarrage a 512b pour charger GDTr, ce qui active A20, passe en mode protégé et saute à _kmain. Commander OSDev.org pour plus d'exemples et d'informations.