Calcul du carré en asm (tasm)

Eclipz Messages postés 6 Date d'inscription mardi 21 mai 2002 Statut Membre Dernière intervention 30 mars 2004 - 6 mai 2003 à 15:27
CoreBreaker Messages postés 540 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 5 octobre 2007 - 6 mai 2003 à 20:38
Salut !
je suis débutant et très nul en asm, quelqu'un aurait une source permettant la saisie d'un nombre et l'élévation de ce dernier au carré et affichage du résultat svp ?
par avance merci

vince

1 réponse

CoreBreaker Messages postés 540 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 5 octobre 2007 1
6 mai 2003 à 20:38
C'est très simple:
valeur non signée d'un octet:
mov al, nombre
mul al

le résultat dans ax

valeur non signée de 2 octets:
mov ax, nombre
mul ax
shl edx, 8
mov dx, ax

le résultat dans edx

valeur non signée de 2 octets:
resultat dq 0
mov eax, nombre
mul eax
mov dword ptr [resultat], eax
mov dword ptr [resultat+4], edx

le résultat dans "resultat"

valeur signée d'un octet:
mov al, nombre
imul al

le résultat dans ax

valeur non signée de 2 octets:
mov ax, nombre
imul ax
shl edx, 8
mov dx, ax

le résultat dans edx

valeur non signée de 4 octets:
resultat dq 0
mov eax, nombre
imul eax
mov dword ptr [resultat], eax
mov dword ptr [resultat+4], edx

le résultat dans "resultat"

Il a aussi pour
une valeur signée d'un octet:
xor ax, ax
mov al, nombre
imul ax, ax

le résultat dans ax

valeur non signée de 2 octets:
xor eax, eax
mov ax, nombre
imul eax, eax

le résultat dans eax

Core Breaker :)
0