Bonjour,
Est ce que c'est possible d'utiliser l'assembleur dans un code C, sous Linux ?
Merci
Bonjour,
Est ce que c'est possible d'utiliser l'assembleur dans un code C, sous Linux ?
Merci
Que veux tu faire : embarquer du code assembleur dans du code C (assembleur en ligne ou inline assembler) ou utiliser l'assembleur et le C en même temps dans un même projet? Dans tous les cas c'est possible mais ce n'est pas un problème de système d'exploitation et moins encore de langage C mais de compilateur/IDE.
Merci
Mais le même le code marche sur Windows, et ne marche pas sur Linux ?
et je sais pas pourquoi ?
Le code
:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 #include <stdio.h> #include <stdlib.h> int main() { asm("mov $0x13, %ax"); asm("int $0x10"); return 0; }
Parce que l'int 10 n'existe pas sous Linux. Ce n'est pas une question d'assembleur mais de système.
Sous DOS, INT 10h FUNC 13h, c'est le PutPixel().
Quand à "Ca marche sous Windows", euh, faut voir. Quelle version de Windows ?"
Sous Linux, il probablement faut passer en mode graphique et utiliser les fonctions prévues pour ça (X11 etc.)
Cmoibal c'est une programmation obsolète qui était valable il ya 10 ans sous ms-dos en mode réel 16bits avec les vieilles cartes vidéos.
Maintenant les OS sont multi taches, donc pour dessiner un pixel ça ne se fait pas comme ça.
Bien sur tu peux appeler int10 et dessiner dans une boite virtuelle ms-dos sous Windows mais il faut abandonner cela et utiliser le GDI sous Windows ou les fonctionnalités de X-Window sous Linux.
Sinon tu peux prendre SDL pour afficher des images et faire des animations...
Sous Windows il est déconseillé d'appeler directement les interruptions matérielles et très certainement sous Linux/Unix.
L'OS propose des fonctions de dessins via des A.P.I.
Partager