gcc / __asm__ dans un code C

Le
C. Jean-Baptiste
Bonjour,
voici donc le code qui me gêne :
__asm__("movl $0x13, %eax "
"int $0x10");
}

en fait, je souhaite passer en mode 13h. Et j'ai un Segfault, au moment du
int $0x10 (du moins je crois, en testant rapidement avec :
__asm__("movl $0x13, %eax");
printf("test");
__asm__("int $0x10");

et

__asm__("movl $0x13, %eax");
__asm__("int $0x10");
printf("test");
)

Cordialement,
Vos réponses
Trier par : date / pertinence
flure
Le #797587
Bonjour,
voici donc le code qui me gêne :
__asm__("movl $0x13, %eax n"
"int $0x10");
}

en fait, je souhaite passer en mode 13h.


Aaaah les joies du 320x200 256 couleurs ...

Et j'ai un Segfault, au moment du
int $0x10


oui, c'est normal.

Sous quel OS faites-vous cela ? S'il s'agit d'un quelconque *nix
(GNU/Linux, BSD etc) ou Windows supérieur à 9x, alors c'est simple et
normal : on est en mode protégé, et les interruptions ne passent pas.
Je ne peux que vous conseiller de passer par une API d'un peu plus haut
niveau, telle que SDL (qui est portable), et grâce à laquelle vous aurez
toujours accès aux pixels de la même manière qu'en mode 13h.

Enfin, votre post était plutôt HS ... mais bon, c'était Noël il n'y a
pas si longtemps que cela ;)

--
Florent "flure" C.
http://flure.free.fr

Jean-Baptiste CAMPESATO
Le #795891
Le Mon, 03 Jan 2005 22:27:15 +0100, flure a écrit :

Bonjour,
voici donc le code qui me gêne :
__asm__("movl $0x13, %eax n"
"int $0x10");
}

en fait, je souhaite passer en mode 13h.


Aaaah les joies du 320x200 256 couleurs ...

Et j'ai un Segfault, au moment du
int $0x10


oui, c'est normal.

Sous quel OS faites-vous cela ? S'il s'agit d'un quelconque *nix
(GNU/Linux, BSD etc) ou Windows supérieur à 9x, alors c'est simple et
normal : on est en mode protégé, et les interruptions ne passent pas.
Je ne peux que vous conseiller de passer par une API d'un peu plus haut
niveau, telle que SDL (qui est portable), et grâce à laquelle vous aurez
toujours accès aux pixels de la même manière qu'en mode 13h.

Enfin, votre post était plutôt HS ... mais bon, c'était Noël il n'y a
pas si longtemps que cela ;)


Excusez moi du retard.
Bah je vais essayé de passer avec la SDL.
Sinon comment la SDL fait elle pour afficher le mode 13h ?

Cordialement,


flure
Le #795890
Excusez moi du retard.
Bah je vais essayé de passer avec la SDL.
Sinon comment la SDL fait elle pour afficher le mode 13h ?


Elle ne fait pas vraiment du mode 13h, mais tu lui demandes une
résolution, et elle t'ouvre une fenêtre, et une surface de pixels dans
laquelle tu peux dessiner, puis que tu peux afficher dans ta fenêtre.
Au final ça revient au même, même si ça n'est pas bas niveau.

--
Florent "flure" C.
http://flure.free.fr

Jean-Baptiste CAMPESATO
Le #801703
Le Fri, 14 Jan 2005 23:44:16 +0100, flure a écrit :

Excusez moi du retard.
Bah je vais essayé de passer avec la SDL.
Sinon comment la SDL fait elle pour afficher le mode 13h ?


Elle ne fait pas vraiment du mode 13h, mais tu lui demandes une
résolution, et elle t'ouvre une fenêtre, et une surface de pixels dans
laquelle tu peux dessiner, puis que tu peux afficher dans ta fenêtre.
Au final ça revient au même, même si ça n'est pas bas niveau.


En bas niveau, je peux utiliser certains modes en protégés? ou ils sont
tous inaccesible comme le 13h ?
Merci


flure
Le #801701
En bas niveau, je peux utiliser certains modes en protégés? ou ils sont
tous inaccesible comme le 13h ?
Merci


Là, je ne sais pas, et ce ne sera pas portable : cela risque de dépendre
de ton système ...

--
Florent "flure" C.
http://flure.free.fr

Jean-Baptiste CAMPESATO
Le #805709
Le Sun, 16 Jan 2005 21:27:25 +0100, flure a écrit :

En bas niveau, je peux utiliser certains modes en protégés? ou ils sont
tous inaccesible comme le 13h ?
Merci


Là, je ne sais pas, et ce ne sera pas portable : cela risque de dépendre
de ton système ...


Ok merci :)


Publicité
Poster une réponse
Anonyme