vinc1008881
Messages postés257Date d'inscriptiondimanche 22 août 2004StatutMembreDernière intervention29 septembre 2010
-
30 janv. 2006 à 18:50
vinc1008881
Messages postés257Date d'inscriptiondimanche 22 août 2004StatutMembreDernière intervention29 septembre 2010
-
30 janv. 2006 à 23:03
Bonjour tout le monde,
dans le cadre du developpemet d'un micro OS, j'aurais voulu savoir s'il existe une interruption qui passe en Pmode (ou du moins en 32 bits), c'est en fait car je suis confornté à un probleme :
1- Le secteur de boot charge le noyau 32 bits
2- Le secteur de boot passe en Pmode
3- Execution du kernel
seulement il ne me reste plus assez d'octet pour la seconde partie........à moins que l'on peut avoir un code qui passe en 32 bits de maniere assez succintes (je veux juste que les instructions soient en 32 bits c'est tout)
voilà, en vous remerçiant à l'avance de votre intêret sur le probleme,
cs_patatalo
Messages postés1466Date d'inscriptionvendredi 2 janvier 2004StatutModérateurDernière intervention14 février 20142 30 janv. 2006 à 21:22
salut,
j'ai reussi a loger le tout dans un secteur CD ( 2048 octets ) afin de lancer un loader directement en 32bits. Le code mbr peut tres bien lire les 3 secteurs suivants et le tour est joué ou bien charger un loader intermediaire.
sinon, la fonction 89H de l'interruption 15H permet le passage en PMODE par le BIOS par contre, tu dois quand meme specifier une GDT de 64 octets. La taille minimale de la GDT etant 8*4 = 32 octets, y'a peut etre une perte quand meme.
voila ce que j'ai de + petit pour le passage en pmode. La partie ldr32 doit pouvoir etre enlevée du code mbr, il te reste plus que ldr16 et la table GDT a prévoire ce qui doit faire moins de 64 octets en tout.
;******************************************************************************
align 4
GDT:
dd 0
db 0
dw DESC_NUL
db 0
FLAT_CODE0 EQU $-GDT
gdt_01:
dw -1
dw 0
db 0
dw DESC_C32+0x0F00
db 0