Accueil > Forum > > > > afficher la somme de 2 entiers superieur à 9
afficher la somme de 2 entiers superieur à 9
samedi 3 décembre 2011 à 15:18:46 |
afficher la somme de 2 entiers superieur à 9

Benh_m
|
Bonjour à tous !
Alors voila, j'ai un devoir en Assembleur à faire et j'ai un problème :
je dois faire la somme de deux entiers, jusque la tout va bien, puis l'afficher.
j'ai réussi à afficher la somme tant qu'elle est inférieure à 10 mais je ne sais pas comment faire pour l'afficher lorsqu'elle est supérieur, car il y a deux (voire plus) caractères à afficher et je ne trouve pas le lien entre ma somme en code ASCII et mes deux caractères. Si quelqu'un pouvais me donner un petit coup de pousse se serait génial !
voila mon bout de code :
Code : pile segment 'stack'
base DB 100 DUP(?)
sommet DB ?
pile ends
donnees segment 'data'
messaisie1 DB 0Dh,0Ah,0Ah,'Saisir OP1 : $'
messaisie2 DB 0Dh,0Ah,0Ah,'Saisir OP2 : $'
messresult DB 0Dh,0Ah,0Ah,'La somme est : $'
messerreur DB 0Dh,0Ah,0Ah,'erreur, le caractere doit etre un entier, recommencer : $'
OP1 DB ?
OP2 DB ?
donnees ends
inst segment 'code'
assume cs:inst, ds:donnees,ss:pile
debut:
mov ax,donnees
mov ds,ax
mov ax,pile
mov ss,ax
lea sp,sommet
; Première Saisi :
Saisie1:
;Invite_saisie :
mov AH,9
LEA DX, messaisie1
INT 21h
mov AH,1
INT 21h
MOV OP1, AL
CMP OP1, '0'
JL CasErreur1
CMP OP1, '9'
JG CasErreur1
JMP Saisie2
CasErreur1 :
mov AH,9
LEA DX, messerreur
INT 21h
JMP Saisie1
; Deuxième Saisi :
Saisie2:
;Invite_saisie :
mov AH,9
LEA DX, messaisie2
INT 21h
mov AH,1
INT 21h
MOV OP2, AL
CMP OP2, '0'
JL CasErreur2
CMP OP2, '9'
JG CasErreur2
JMP Traitement
CasErreur2 :
mov AH,9
LEA DX, messerreur
INT 21h
JMP Saisie2
; Traitement :
Traitement :
ADD OP1, AL
ADD OP1, -48
CMP OP1,'9'
;JG sup9
JMP inf10
; Affichage :
inf10 :
mov AH,9
LEA DX, messresult
INT 21h
MOV AH,2
MOV DL, OP1
INT 21h
;sup9 :
RetourSysteme:
mov ah,4Ch
int 21h
inst ends
end debut
NB : j'en suis à mon 3ème cour d'assembleur alors soyez indulgent :)
|
|
mercredi 14 décembre 2011 à 21:59:06 |
Re : afficher la somme de 2 entiers superieur à 9

BLUEBIBUBBLE
|
comme on est en base 10, il faut un algo du style:
Début:
- diviser la valeur par 10
- afficher le reste
- si la valeur > 0 => jmp Début
on affiche l'unité en premier, puis les dizaines, puis les centaine, etc...
|
|
mercredi 14 décembre 2011 à 23:01:08 |
Re : afficher la somme de 2 entiers superieur à 9

Benh_m
|
ah ouiiiii merci ! je faisais pareil mais en enlevant 10 à chaque fois.. mais mon problème est maintenant de réussir a trouver une méthode pour convertir en chiffre, les codes ASCII obtenus :(
|
|
jeudi 15 décembre 2011 à 09:07:49 |
Re : afficher la somme de 2 entiers superieur à 9
|
jeudi 15 décembre 2011 à 09:09:00 |
Re : afficher la somme de 2 entiers superieur à 9
|
jeudi 15 décembre 2011 à 18:44:43 |
Re : afficher la somme de 2 entiers superieur à 9

Benh_m
|
quel est la différence entre AL et DL ?
donc si j'ai bien compris, je fais tout mon traitement et à la fin pour l'affichage j'ajoute '0' à mes variables ?
|
|
dimanche 18 décembre 2011 à 22:48:38 |
Re : afficher la somme de 2 entiers superieur à 9

BLUEBIBUBBLE
|
DL est intéressant parce qu'il reçoit le RESTE lors d'une division.
Example:
mov eax,Nombre a afficher
mov edi,OFFSET Fin du Tampon qui doit recevoir la chaine
mov ecx,10 ;Base 10
Label1:
xor edx,edx ;met edx a zéro
div ecx ;divise EDX:EAX par ECX, Résultat dans EAX, reste dans EDX
add dl,'0' ;'0' = Code ASCII du zéro
dec edi ;on se déplace d'un caractère vers la gauche
mov [edi],dl ;on affiche le chiffre
or eax,eax ;test si eax (Résultat) = ZÉRO
jnz Label1 ;Si pas 0, Répète pour les dizaines, les centaines, etc...
En 16 bit c'est pareil
On divise DX:AX par CX, résultat dans AX, reste dans DX
le reste tient évidemment dans DL, (0-9)
Il faudra surement préciser le segment (mov ds:[di],dl ;si je me souvient bien)
|
|
lundi 19 décembre 2011 à 10:17:22 |
Re : afficher la somme de 2 entiers superieur à 9

Benh_m
|
humm... mon prof d'assembleur m'a dit qu'on pouvait pas diviser en asm, surement qu'il veut qu'on le fasse autrement. mais je pense avoir trouver une solution pas mal ( qui marche pas mais bon ^^ )
voila mon traitement : val1 val2 et val3 corresponde respectivement au chiffre dizaine, centaine :
Code : Traitement1 :
CMP VAL1, 9 ; on compare VAL1 qui est la somme des chiffres pour voir s'il est superieur à 9
JG sup91 ; si superieur à 9 on jump jusqu'à sup91
CMP VAL1, 9
JL Traitement2 ; sinon on jump au traitement numéro 2
sup91:
SUB VAL1,10 ; on enlève 10 à VAL1
ADD VAL2,1 ; on ajoute dans VAL2 1
JMP Traitement1
Traitement2 :
CMP VAL2, 9 ; on compare VAL2 qui est la somme des dizaine pour voir ;s'il est superieur à 9
JG sup92 ; si superieur à 9 on jump jusqu'à sup92
CMP VAL2, 9
JL Affichage ; sinon on jump à l'affichage
sup92 :
SUB VAL2,10 ; on enlève 10
ADD VAL3,1 ; on ajoute dans VAL3 1
JMP Traitement2
Affichage :
; affichage résultat de la somme
mov AH,9
LEA DX, messresult ; affichage texte
INT 21h
ADD VAL3, '0'
MOV AH,2
MOV DL, VAL3 ; centaine
INT 21h
ADD VAL2, '0'
MOV AH,2
MOV DL, VAL2 ; dizaine
INT 21h
ADD VAL1, '0'
MOV AH,2
MOV DL, OP1 ; chiffre
INT 21h
|
|
mardi 20 décembre 2011 à 22:48:36 |
Re : afficher la somme de 2 entiers superieur à 9

BLUEBIBUBBLE
|
Inutile d'afficher les centaines, si le plus grand nombre saisissable est 9...
... 9 + 9 = 18 
|
|
mercredi 21 décembre 2011 à 02:47:34 |
Re : afficher la somme de 2 entiers superieur à 9

Benh_m
|
ah oui pardon, c'est parce que je suis passé a la question suivante à savoir faire la somme de deux nombres a deux chiffres ^^ donc au max 99+99= 198
|
|
Cette discussion est classée dans : int, db, mov, 21h, op1
Répondre à ce message
Sujets en rapport avec ce message
Mini OS !! debut [ par Hardouz ]
salut a tous ! je debut en ASM je vx bosser un px en ASM je connais l'architechture ect !!! j'ai fais un pti programme mais il ya un probléme 1/ lors
assembleur/ patronyme [ par maxverypainful ]
Bonjour, je suis nouveau en tant qu'étudiant en informatique de gestion et j'ai une question concernant un code que nous devons créer.Il a pour but de
probleme d'affichage d'une soustraction [ par calimerros ]
[u]Bonjour à tous et à toutes.[/u] Voici un programme que je réalise et je bloque au niveau de l'affichage d'une soustraction (SUB). Pour moi mon pr
Addition ASM [ par GibsonUSA ]
Bonjour a tous, je débute en ASM 16bits et je bloque pour faire une addition de deux chiffres saisis par l'utilisateur. Voila ce que j'ai fais. A l'
Saisie & Calcul de sa taille de caractère en tasm [ par baz13shaz ]
je veut saisir une chaine de caractère & calculer sa taille,et je veut charger la chaine saisie en mémoire centrale? que doit je faire? comment je peu
Mon fichier Mp3 [ par li2k ]
Salut!J'aimerai créer en assembleur un programme qui lance la lecture d'un fichier mp3 (Juste pour faire mon réveil personnalisé sur ordi)Mais bon le
un code en assembleur [ par tatouna ]
salut à tous, je suis débutante en asm donc j'ai un problème et je souhaite que vous m'aidiez j'ai une chaine de caractère (une date) et je veut la p
Problème de restitution d'une chaîne. [ par Sawteeth ]
Bonsoir. Je viens de débuter l'assembleur et j'ai tenté de faire un petit programme qui lit une chaîne au clavier et l'affiche à l'écran. Le problème
Lecture de DTA [ par mouadestla ]
Bonsoir , je débute en assembleur , j'esseye de coder en 16 bits un petit programme qui fait appele à l'interuptions 21h : 4Eh du DOS qui cherche un f
tp assembleur i3 pour la FST [ par babbiverus ]
main proc mov ax,@Datamov ds, axmov si,offset tabmov cx, 16mov bx,0saisie: mov dx,offset commande;afficher "saisir un nombre"mov ah,9int 21hmov ah, 1
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|