Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

gcc / __asm__ dans un code C

6 réponses
Avatar
C. Jean-Baptiste
Bonjour,
voici donc le code qui me gêne :
__asm__("movl $0x13, %eax \n"
"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\n");
__asm__("int $0x10");

et

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

Cordialement,

6 réponses

Avatar
flure
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

Avatar
Jean-Baptiste CAMPESATO
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,


Avatar
flure
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

Avatar
Jean-Baptiste CAMPESATO
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


Avatar
flure
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

Avatar
Jean-Baptiste CAMPESATO
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 :)