Salut à tous, je veux faire se petit programme en assembleur, quelqu'un peut m'aider svp
variables: x,y,r
r = 0
Tant que x est différent de 0
Si x est impair alors r = r + y fin si
x = x / 2
y = y * 2
Fin tant que
afficher r
-----
28/12/2014, 13h05
#2
invitef84b5b58
Date d'inscription
janvier 1970
Messages
61
Re : langage assembleur
voila ce que j'ai fais:
Code:
.model small
.data
var2 db 2
var3 dw 0
.code
main proc
mov ah,0
mov dl,2
mov dh,0
mov bl,5
mov cl,2
do:
shr bl,1
shl cl,1
mov al,bl
div dl
cmp ah,dh
jne impaire ;aller vers impaire si ah=0
impaire:
add cl,bl
ends impaire
cmp bl,1
jne do
ends do
endp
endm
28/12/2014, 14h49
#3
Jack
Modérateur
Date d'inscription
avril 2003
Localisation
Metz
Messages
17 787
Re : langage assembleur
Pourquoi ne pas reprendre le nom des variables de l'énoncé?
Quel doit être le type et la taille de ces variables?
C'est quoi ces ends, endp et endm?
Pour tester si un nombre est pair ou impair, il suffit de tester son bit de poids faible. Soit le processeur possède des instructions de test de bit, soit il faut passer par une opération logique avec un masque qui va filtrer le ou les bits à tester.