calculatrice asm - ASM - Programmation
Marsh Posté le 24-01-2006 à 13:59:30
vi mais fo respecter le protocole :
1/ tu essayes de faire un truc
2/ tu regardes si ca marche
3/ si t'as une question précise tu viens la poster ici
Marsh Posté le 24-01-2006 à 14:04:00
voici le debut de mon prog mai apres je naarive pas a additionner les 2 chiffres ,je precise c une calculatrice a 2 chifree maxi donc 99+99 o max
;-------------------------------------
; saisir nombre 1 et 2
;-------------------------------------
TITLE DISPLAY - programme prototype
;-------------------------------------
CSEG SEGMENT
ASSUME CS:CSEG,DS:CSEG,ES:CSEG
ORG 100H
MAIN :mov ah,9
lea dx,MESSAGEA
int 21h
mov ah,9
lea dx,MESSAGE1
int 21h
mov ah,0ah
lea dx,nb1
int 21h
mov ah,9
lea dx,MESSAGE2
int 21h
mov ah,0ah
lea dx,nb2
int 21h
addition:
mov ah,9
lea dx,RES
int 21h
MESSAGEA DB "BONJOUR ET BIENVENUE DANS LA CALCULATRICE $"
MESSAGE1 DB 0ah,0dh,"SAISIR NOMBRE 1: $",0aH,0dH
MESSAGE2 DB 0aH,0dH,"SAISIR NOMBRE 2: $",0aH,0dH
nb1 dw 5,?,5 dup(?)
nb2 dw 5,?,5 dup(?)
RES dw ?
CSEG ENDS
END MAIN
;------------------------------------------addition
addition proc
MOV AL,nb1
ADD AL,nb2
MOV RES,AL
endp addition
Marsh Posté le 24-01-2006 à 14:29:32
ce que tu récupères dans nb1 et nb2, c'est des chaines de caractères, pas la "valeur" de ces chaines.
Marsh Posté le 24-01-2006 à 20:32:07
Tu dois faire une conversion des valeurs ASCII et valeurs décimal, pour cela il faut que tu utilises le pointeur DI que tu fais varier.
Et pour te mettre sur la voie, tes variables nb1 et nb2 sont de la forme suivante:
nb de caractère possible avec le CR || nb de caractère tapé sans le CR || caractère 1 || caractère 2 || ... || CR
donc si dans nb1 tu mets 10 la variable sera de la forme 5 2 1 0 CR
Marsh Posté le 24-01-2006 à 21:59:13
merci op-hium je vai essayer de voir ce que jaarive a faire avec ca mai ca me di rien lol
Marsh Posté le 24-01-2006 à 22:15:19
pour pouvoir travailler sur ta variable de la façon que je t'ai indiqué, fait
LEA DI, nb1
et le pointeur DI sera par défaut sur la première valeur de la variable (dans ton cas le 5), pour récupérer la valeur sur laquelle pointe DI, il suffit de faire [DI]
Marsh Posté le 25-01-2006 à 20:40:45
bravo, l'un des points les plus durs est résolu, pour l'affichage je te conseille de faire le même résonement mais à l'envers c'est comme ça que j'ai fais pour mon projet que je viens de finir et qui est aussi une calculatrice
Marsh Posté le 30-01-2006 à 09:51:16
si ca t'interesse,je peux te passer le source d'une calculatrice qui fait - + / *
Marsh Posté le 24-01-2006 à 13:53:53
bjr , je sui un eleve de 1ere annee info jai un projet a faire , cree une calculatrice en assembleur mais je ne touche pas beaucoup en asm . est ce que quelqu'un peu m aider merci