Fonction MUL de l'assembleur en langage C
Résolu/Fermé
slolo2000
slolo2000
- Messages postés
- 315
- Date d'inscription
- jeudi 3 février 2005
- Statut
- Membre
- Dernière intervention
- 29 mai 2007
slolo2000
- Messages postés
- 315
- Date d'inscription
- jeudi 3 février 2005
- Statut
- Membre
- Dernière intervention
- 29 mai 2007
A voir également:
- Fonction MUL de l'assembleur en langage C
- Fonction MUL de l'assembleur en langage C ✓ - Forum - C
- Les fonctions du langage exercices et corrigés - Forum - C
- Langage assembleur - Articles
- Multiplication langage assembleur - Conseils pratiques - x86
- Code une fonction, dans le langage de ton choix, qui détermine s’il existe 3 entiers dans le tableau t dont le produit fait 30. ✓ - Forum - C
3 réponses
tafiscobar
27 févr. 2005 à 20:29
- Messages postés
- 1277
- Date d'inscription
- jeudi 7 décembre 2000
- Statut
- Contributeur
- Dernière intervention
- 26 février 2009
27 févr. 2005 à 20:29
salut, eh ben tu lis la valeur du registre, coe on peut incorporer du code asm ds du C, tu incorpores ton asm ds ton code C. Mais attention, ce ne sera pas du code portable. Je ne sais pas si j'ai été clair.
slolo2000
27 févr. 2005 à 21:52
- Messages postés
- 315
- Date d'inscription
- jeudi 3 février 2005
- Statut
- Membre
- Dernière intervention
- 29 mai 2007
27 févr. 2005 à 21:52
si tu as été clair mais j'ai essayé la méhode sous Dev C++ mais je n'y arrive pas. voici la syntaxe trouver sur le site de Dev c++(http://www.bloodshed.net/dev/faq.html) :
How to use assembly with Dev-C++ ?
The "GNU as" assembler uses AT&T syntax (not Intel). Check out this page for more information.
Here's an example of such a syntax :
// 2 global variables
int AdrIO;
static char ValIO;
void MyFunction(..........)
{
__asm("mov _AdrIO, %dx") ; // loading 16 bits register
__asm("mov _ValIO, %al") ; // loading 8 bits register
/*
Don't forget the underscore _ before each global variable names !
*/
__asm("mov %ax,%dx") ; // AX --> DX
}
J'ai donc essayé d'initialiser ax et cx puis de faire un mul cx mais ça ne fait rien. De même, j'ai simplement essayé de faire un __asm("mov %dx, 25 ") ; mais ça fait planter l'appli.
Si quelqu'un peut m'aider se serait cool. Je veux simplement faire une multiplication en assembleur sous Dev c++
A+
How to use assembly with Dev-C++ ?
The "GNU as" assembler uses AT&T syntax (not Intel). Check out this page for more information.
Here's an example of such a syntax :
// 2 global variables
int AdrIO;
static char ValIO;
void MyFunction(..........)
{
__asm("mov _AdrIO, %dx") ; // loading 16 bits register
__asm("mov _ValIO, %al") ; // loading 8 bits register
/*
Don't forget the underscore _ before each global variable names !
*/
__asm("mov %ax,%dx") ; // AX --> DX
}
J'ai donc essayé d'initialiser ax et cx puis de faire un mul cx mais ça ne fait rien. De même, j'ai simplement essayé de faire un __asm("mov %dx, 25 ") ; mais ça fait planter l'appli.
Si quelqu'un peut m'aider se serait cool. Je veux simplement faire une multiplication en assembleur sous Dev c++
A+
slolo2000
27 févr. 2005 à 23:28
- Messages postés
- 315
- Date d'inscription
- jeudi 3 février 2005
- Statut
- Membre
- Dernière intervention
- 29 mai 2007
27 févr. 2005 à 23:28
je me répond à moi tou seul mais ça peut être utile pour les autres. en fait la réponse est assez simple. Il suffit de travailler avec un variable du type double puis de diviser le résultat de la multiplication par 2^32
C'est tout.
C'est tout.