Flux rss
Collection CommentÇaMarche.net
Rechercher : dans
Par :

Fonction MUL de l'assembleur en langage C

slolo2000, le dimanche 27 février 2005 à 19:09:09 
 Signaler ce message aux modérateurs

Bonjour,

ma question va peut être paraître bizarre mais comment fait-on en langage C pour avoir l'équivalent de la fonctionMUL de l'assembleur. Je m'explique. En assembleur MUL ECX place dans EAC le résultat de EAX * ECX. Mais si la valeur est plus grande que 32 bits, la fonction MUL place les bits en trop dans EDX. Exemple :
451319D * 451319D = 12A34D56F77A49
Or cette valeur est beaucoup trop grande pour tenir dans une variable de 32 bits.
En assembleur EAX sera égal à 56F77A49 et EDX égal à 12A34D

Comment faire pour avoir la valeur 12A34D en langage C ?

Merci d'avance.

1

tafiscobar, le dimanche 27 février 2005 à 20:29:51

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. tafiscobar "lou waye def bopame"
la nullite n'existe pas, l'ignorance oui, ah je suppose!!!

Répondre à tafiscobar

2

slolo2000, le dimanche 27 février 2005 à 21:52:40

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+

Répondre à slolo2000

3

 slolo2000, le dimanche 27 février 2005 à 23:28:29

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.

Répondre à slolo2000
Langage C pointeurs, creation de liste. (Résolu) Bonjour a tous. Voila, je rencontre quelaues petits preoblemes en langage C. Le but est de creer des fiches afin de creer une listes les contenant. Il faut ensuite afficher ce que l on a entre dans chaque fiche, puis afficher enfin le nombre de fiches... www.commentcamarche.net/forum/affich-2170245-langage-c-pointeurs-creation-de-liste
Langage C++ - Les pointeurs Comme en langage C, le langage C++ permet d'utiliser des pointeurs pour manipuler des données, mais il introduit aussi le concept de référence, très pratique pour permettre la modification d'une donnée passée en paramètre d'une fonction. Définition... www.commentcamarche.net/contents/cpp/cpppoint.php3
Petit programme en langage C (Résolu) Bonjour, Etantdonné débutant en langage C, permettez moi S.V.P de vous adresser mon petit probléme que je n'arrive à comprendre la réponse: l'ennoncé de l'exercie: Écrire une fonction qui ne renvoie aucune valeur et qui détermine la valeur maximale et... www.commentcamarche.net/forum/affich-2811312-petit-programme-en-langage-c
[Langage C] C/C++ Erreur de segmentationQu'est ce qu'une erreur de segmentation Vous êtes en train de développer une application sous Linux en C/C++. Tout va bien, ça compile, les oiseaux chantent. Donc vous lancez votre application pour la tester. Et vous obtenez l'un de ces deux... www.commentcamarche.net/faq/sujet-4791-langage-c-c-c-erreur-de-segmentation
Les files en langage CLes files - Premier Entré Premier Sorti Requis I. INTRODUCTION II. Définition III. La construction du prototype d'un élément de la file IV. Opérations sur les files A. Initialisation B. Insertion d'un élément dans la file C. Oter un... www.commentcamarche.net/faq/sujet-8282-les-files-en-langage-c
Les piles en langage CLes piles Requis I. INTRODUCTION II. Définition III. La construction du prototype d'un élément de la pile IV. Opérations sur les piles A. Initialisation B. Insertion d'un élément dans la pile C. Ôter un élément de la pile D. Affichage... www.commentcamarche.net/faq/sujet-8283-les-piles-en-langage-c
Documentation des fonctions du langage CBonjour, Voila j'ai besoin d'utiliser certaines fonctions du langage C que je ne connais pas et je me demandais si quelqu un connaitrait un site qui les repertorie (un peu à la facon de la javadoc pour JAVA ou des docs nexen pour PHP / MYSQL) Parce... www.commentcamarche.net/forum/affich-2170184-documentation-des-fonctions-du-langage-c
Language c cours+exercices corrigésbonjour tout le monde je voulait avoir un cours sur le language c ainsi que des exercices simples accompagnés de correction www.commentcamarche.net/forum/affich-1662403-language-c-cours-exercices-corriges
[langage C]remplacer chaine de caractereBonjour, j'aimerais savoir s'il est possible de faire en langage C ceci: j'ai par exemple un fichier test.txt dans lequel il se trouve la chaine de caractere suivante: toto est il possible de remplacer cette chaine de caractere par une autre... www.commentcamarche.net/forum/affich-3184665-langage-c-remplacer-chaine-de-caractere
Langage C - Les chaînes de caractèresQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C, une chaîne... www.commentcamarche.net/contents/c/cstring.php3
Langage C - Les fonctionsLa notion de fonction On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la fonction dans le corps du programme principal. Les fonctions permettent d'exécuter dans plusieurs parties du... www.commentcamarche.net/contents/c/cfonc.php3
Langage C++ - Les types de donnéesLes types de données Les données manipulées en langage C++, comme en langage C, sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître... www.commentcamarche.net/contents/cpp/cpptype.php3