Bonsoir
svp
- Expliquer les instructions ADD,ADC,SUB,SBB,MUL,IMUL,DIV,IDIV,INC,DEC,NEG
- Montrer La différence entre MUL et IMUL , à l'aide d'un exemple en (B)
et merci
Bonsoir
svp
- Expliquer les instructions ADD,ADC,SUB,SBB,MUL,IMUL,DIV,IDIV,INC,DEC,NEG
- Montrer La différence entre MUL et IMUL , à l'aide d'un exemple en (B)
et merci
Bonjour et bienvenue,
Nous pouvons t'aider mais nous ne ferons pas ton travail à ta place. Montre-nous ce que tu as écrit jusqu'ici et où tu bloques en particulier, et nous tâcherons de t'aider.
Merci également de lire les règles du forum Assembleur et de nous donner les informations qui y sont précisées.
Bon courage.
merci
je suis nouveau dans ce domaine ,commencer je dois expliquer les instructions
et je sais queest-ce vrai ? svp je veux exemple à comprendre ceL'instruction MUL est utilisé pour les nombres non signés et IMUL pour les signés (petit rappel : les nombres signés peuvent être négatifs contrairement aux non signés, par exemple en 16 bits en non signé les nombres vont de 0 à 65535 et en signé ils vont de -32768 à 32767). Contrairement aux opérations précédentes, la multiplication n'a besoin que d'une seule opérande : la source. La destination et donc le nombre qui devra être multiplié se trouvera toujours et obligatoirement dans AX. La source est un registre.
Ou coince tu ?
As tu compris la différence entre un nombre signé et un nombre non signé ?
Et oui, le résultat d'une multiplication se trouvera toujours dans eax.
multipliera le contenu de eax par ecx et le résultat sera dans eax.
Code : Sélectionner tout - Visualiser dans une fenêtre à part mul ecx
tu peux aussi jetr un oeil ici :
http://asm.developpez.com/cours/
Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
Mon article sur le P2V, mon article sur le cloud
Consultez nos FAQ : Windows, Linux, Virtualisation
mul c'est pour une multiplication non signée, imul pour une multiplication signée.
Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
Mon article sur le P2V, mon article sur le cloud
Consultez nos FAQ : Windows, Linux, Virtualisation
'soir,
petite correction :
mul ecx
multiplie bien ecx par eax, mais le résultat est dans edx:eax
c'est le multiplicateur qui renseigne sur la taille de la destination (qui fait le double)
mul reg8 (al,bl,cl,dl) -> résultat dans ax
mul reg16 (ax,bx,cx,dx...etc) -> résultat dans dx:ax
mul reg32 (eax,ebx,ecx,edx..etc...) -> résultat dans edx:eax
Pour les nombres signés ou non, déjà il faut bien comprendre le sens du mot "signé"
on ne parle pas de signature en bas du chèque mais du signe + ou - devant un chiffre
En l’occurrence on ne s'occupe que du "-" car le "+" ne s'écrit jamais (devant un nombre positif)
Pour me simplifier un peu l'écriture, je vais parles des nombres 8 bits (mais c'est pareil pour tous les autres)
Avec 8 bits, nous pouvons coder 256 valeurs différentes.
Ou bien la valeur est prise comme étant "non signée" et peut aller de 0 à 255
Ou bien la valeur est prise comme étant "signée" et peut aller de -128 à 127
C'est au programmeur de décider si les valeurs qu'il traite sont signées ou non.
dans le cas d'un nombre "signé" (donc pouvant être négatif), le signe est donné par le bit le plus à gauche.
par exemple :
00001110 = positif ( = 14 en décimal)
11110011 = négatif ( = -13 en décimal)
Pour lire une valeur négative, il faut inverser tous les bits, et ajouter 1 au résultat
dans mon exemple au dessus :
inverse = 00001100
+1 = 00001101 ( =13 en décimal)
ça fonctionne aussi pour transformer un nombre positif en négatif (inverse + 1)
le +1 s'explique avec la valeur "0" ce dernier n'a pas de signe
donc si on a : 00000000 et qu'on applique l'inverse, on obtient : 11111111
+1 = (1)00000000 le 1 déborde des 8 bits et on se retrouve bien à nouveau avec nos 8 bits à 0
Bien vu. Si le résultat est <32 bits dex sera alors égal à 0.multiplie bien ecx par eax, mais le résultat est dans edx:eax
le bit le plus à gauche, tu le trouvera sous le nom de bit de poids fort ( le plus le plus à droite étant le bitr de poids faible) ou sous le nom de MSB : Most Significative Bit bit le plus significatif en Français.dans le cas d'un nombre "signé" (donc pouvant être négatif), le signe est donné par le bit le plus à gauche.
Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
Mon article sur le P2V, mon article sur le cloud
Consultez nos FAQ : Windows, Linux, Virtualisation
maintenant je ne comprends pas
par exemple
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 mov al,2 mov bl,XX mul blXX quand je l'utilise mul ou imul ??
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 mov al,2 mov bl,XX imul bl
Salut,
Est-ce que XX peut être un nombre relatif inferieur à zéro dans ton cas ?XX quand je l'utilise mul ou imul ??
Si oui, utilises imul, dans le cas contraire utilise mul.
parce que...
Envoyé par Forthman
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager