question toute bête: comment inclure une portion de code assembleur dans un code source en c++ à compiler avec g++:
question toute bête: comment inclure une portion de code assembleur dans un code source en c++ à compiler avec g++:
up
Il suffit tout simplement de mettre le code assembleur entre accolade et de faire précéder le tout par asm ou bien _asm ou encore __asm.
Oui j'ai deja essayé mais avec asm j'ai une "parse error before '{' token"
idem avec __asm et avec _asm il me dit que le fonction _asm n'st pas declarée
pour info c'est une petite portion du code qui permet de passer en mode graphique
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 void setmode() { asm{ MOV AX, 0x13 INT 0x10 } }
Attention, g++ utilise la notation AT&T pour l'assembleur.
http://www.delorie.com/djgpp/doc/brennan/brennan_att_inline_djgpp.html
ok merci 8)
donc mon code devient:
ça compile
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 void setmode() { asm( "MOV $0x13,%AX\n\t" "INT $0x10" ); }mais ça plante à l'execution j'ai une fenetre windows avec "...exe a rencontré un probleme et doit fermer .... voulez-vous envoyer le rapport d'erreur"
![]()
Je ne pense pas qu'on puisse utiliser des interruptions dans du code Windows 32. Mais ça marche en tout cas pour du 16 bits (Borland Turbo C/Pascal).
je cherche à faire qu'avec le matos de base du standart c++
up
=> impossible.
Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...
C'est valable s'il utilise DJGPP, sous DOS. En fait tu as le droit d'utiliser les IT dans un programme Win32, mais celles-ci sont totalement différentes d'un programme DOS. Une des seule qui soit valide c'est l'IT 0x3 qui permet de déboguer. Le reste ça va mal se passer pour ton appli. Pour faire du graphisme oriente toi vers quelque chose comme DirectX, OpenGL, la SDL...
Merci pour ton lien Aurelien.Regat-Barrelj'ai reussi à compiler et j'ai l'impression que c'est + propre mais ça crash tjs avec "...exe a rencontré un probleme et doit fermer..." voici le code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 unsigned int tempmode; // Variable globale temporaire //----------------------------------------------------------------------// // setmode - Appelle le mode passer en parametre // //----------------------------------------------------------------------// void setmode(unsigned int mode) { tempmode=mode; //pour travailler sur la variable globale asm( "MOVW _tempmode,%AX\n\t" "INT $0x10" ); }
Envoyé par ShootDX
Une des seule qui soit valide c'est l'IT 0x3 qui permet de déboguer. Le reste ça va mal se passer pour ton appli. Pour faire du graphisme oriente toi vers quelque chose comme DirectX, OpenGL, la SDL...
Partager