Fonction MUL de l'assembleur en langage C
Résolu/Fermé
slolo2000
Messages postés
315
Date d'inscription
jeudi 3 février 2005
Statut
Membre
Dernière intervention
29 mai 2007
-
27 févr. 2005 à 19:09
slolo2000 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
slolo2000 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
A voir également:
- Mul assembleur
- E mul - Télécharger - Téléchargement & Transfert
- Nasm assembleur - Télécharger - Édition & Programmation
- Assembleur add mul div sus - Forum Assembleur
- Tp corrigé assembleur 8086 - Forum Programmation
- Formation monteur assembleur pc ✓ - Forum Études / Formation High-Tech
3 réponses
tafiscobar
Messages postés
1277
Date d'inscription
jeudi 7 décembre 2000
Statut
Contributeur
Dernière intervention
26 février 2009
177
27 févr. 2005 à 20:29
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
Messages postés
315
Date d'inscription
jeudi 3 février 2005
Statut
Membre
Dernière intervention
29 mai 2007
48
27 févr. 2005 à 21:52
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
Messages postés
315
Date d'inscription
jeudi 3 février 2005
Statut
Membre
Dernière intervention
29 mai 2007
48
27 févr. 2005 à 23:28
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.