Et enfin en 68000
d3 = d1 * d2
run:
'on charge des valeurs
move.w #10,d1
move.w #20,d2
'on s'assure qu'on travaille que sur des 16 bits
and.l #$0000FFFF,d1
and.l #$0000FFFF,d2
'on met a 0 le registre de resultat
clr.l d3
Boucle:
btst #0,d1
beq Suivant
'le bit0 de d1 n'est pas a 0 donc on ajoute d2 a d3
add.l d2,d3
Suivant:
'et on decale d1 de 1 bit vers la droite
lsr.l #1,d1
'on multiplie d2 par 2 en le decalant d'1 bit vers la gauche
lsl.l #1,d2
cmpi #0,d1
'on recommence tant que d1 n'est pas a 0
bne Boucle
rts
Arnaud