prunkdump
Messages postés33Date d'inscriptionvendredi 21 février 2003StatutMembreDernière intervention19 avril 2004
-
10 mai 2003 à 17:29
CoreBreaker
Messages postés540Date d'inscriptiondimanche 23 mars 2003StatutMembreDernière intervention 5 octobre 2007
-
11 mai 2003 à 18:20
Bonjours afin de testé un de mes programmes qui passe en mode protégé j'ai éssayé de renplir en 32bits le buffer d'écran en mode graphique 13h. Au début du programme initialise le mode 13h puis dans la section 32bits je place ceci:
start32_code:
movzx ebx, word [code_seg] ;segment du code16 qui à été
;mis dans le descripteur
shl ebx, 4
mov edi, 0x000a0000 ;adresse buffer écran
sub edi, ebx
mov ecx, 0x00100000 ;taille du buffer video 1 segment
;16bits
mov ah, 0x12 ;donnée à insérer dans le buffer
rep stosb
jmp start32_code
Sauf que ce code ne marche pas, je n'arrive pas à comprendre pourquoi, merci de répondre si vous voyez le problême.
CoreBreaker
Messages postés540Date d'inscriptiondimanche 23 mars 2003StatutMembreDernière intervention 5 octobre 20071 11 mai 2003 à 18:20
Attention le mode 13h n'a un segment vidéo de 64000 octets, la taille est que tu passes est plutot douteuse surtout que tu essais de dépacer la limite des 1Mo. Mais peut-être que tu passes mal au mode protégé (ça ne se limite pas à positionner le bit 0 de CR0, il faut en autres activer la ligne d'adresse 20). Il faut aussi faire en sorte de te donner un accès à tout l'espace mémoire.
Je te rappelle qu'en mode protégé l'interruption 10h n'est plus l'interruption du bios mais une des exceptions du processeur.