begin process at 2010 03 20 01:56:31
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Assembleur

 > 

Archives

 > 

Autres asm

 > 

Multiplication de deux nombres compris entre 0 et 99 en assembleur


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Multiplication de deux nombres compris entre 0 et 99 en assembleur

mercredi 28 avril 2004 à 17:46:53 | Multiplication de deux nombres compris entre 0 et 99 en assembleur

petitspirou

salut, j'ai un programme a faire mais je suis nul en assembleur, voici ce que j'ai fais mais ca ne fonctionne pas.
Quelqun peut'il me le corriger et me le renvoier. Un grand merci d'avance a celui qui le fera, il me sauvera.( je doit le rendre mercredi prochain a l'ecole)

dosseg
.model small
.stack 100h
.data
debut db 13,10,"Multiplication de 2 nombres entre 0 et 99 $"
dem1 db 13,10,"Entrez le premier nombre $"
dem2 db 13,10,"Entrez le second nombre $"
produit db 13,10,"Le r,sultat de la multiplication est : $"
resul db 5 dup("0")
nb1 db 3, 4 dup(?)
nb2 db 3, 4 dup(?)
ch3 db ?
ch4 db ?
ch5 dw ?
r1 db 0
r2 db 0
r3 db 0
r4 db 0
divi dw 10
multi db 10
.code
mov ax, @data
mov ds, ax

mov dx, offset debut ;affiche le titre
mov ah, 09h
int 21h

mov dx, offset dem1 ;demande le premier chiffre
mov ah, 09h
int 21h

mov dx, offset nb1 ;enregistre le premier chiffre
mov ah, 0Ah
int 21h

sub nb1+2,30h ;conversion -> ascii
sub nb1+3,30h

mov al, nb1+2 ;enregistre le premier nombre
mul multi
mov nb1+2, al
add al, nb1+3
mov ch3, al

mov dx, offset dem2 ;demande le deuxieme chiffre
mov ah, 09h
int 21h

mov dx, offset nb2 ;enregistre le deuxieme chiffre
mov ah, 0Ah
int 21h

sub nb2+2,30h ;conversion -> ascii
sub nb2+3,30h

mov al, nb2+2 ;enregistre le deuxieme nombre
mul multi
mov nb2+2, al
add al, nb2+3
mov ch4, al

mov al, ch3 ;multiplie les deux nombres
mul ch4
mov ch5, ax

mov dx, 0
mov ax, ch5
cmp ax, 0
je suite
div divi ;divise par 10
mov r1, dl ;stock le reste
cmp ax, 0
je suite
div divi ;divise par 10
mov r2, dl ;stock le reste
cmp ax, 0
je suite
div divi ;divise par 10
mov r3, dl ;stock le reste
cmp ax, 0
je suite
div divi ;divise par 10
mov r4, dl ;stock le reste

suite: add r1, 30h
add r2, 30h
add r3, 30h
add r4, 30h

mov ah, r4 ;stock les chiffres dans la chaine
mov resul, ah
mov ah, r3
mov resul[1], ah
mov ah, r2
mov resul[2], ah
mov ah, r1
mov resul[3], ah
mov resul[4], "$"

mov dx, offset produit ;affiche le r,sultat
mov ah, 09h
int 21h
mov dx, offset resul
mov ah, 09h
int 21h

mov ah, 4ch ;termine le programme
int 21h
END


jeudi 29 avril 2004 à 10:01:42 | Re : Multiplication de deux nombres compris entre 0 et 99 en assembleur

TangiX

Desolé, on est pas adepte de la resolution gratuite d'exercice, en revenche ya pa de probleme pour t'aider a trouver la ou les erreurs

Face a ce genre de probleme, il y a deux solutions:
la premiere consiste a diviser ton prog en plusieurs ss/routines que tu teste independement des autres
(En plus le programme est plus clair et structuré : ton prof appreciera !)

la deuxieme consiste a tracer ton prog a l'aide d'un debugger. c un peu plus bourrin (moi j'apelle ca du brute-programming). un prog tel que TD.EXE (borland) est tres bon pour ca (prog DOS). La technique consiste a suivre l'execution du prog instr par instr et de comparer la reaction de chacune par rapport a ce qui était prévu

BonDev'
ps: ya une troisieme technique qui consiste a ne pa rendre ton devoir, enfin c a toi d'voir.
-----------------------------------
fan de prog système (voir taré)
En attente de Valium ! lol
samedi 8 mai 2004 à 15:54:33 | Re : Multiplication de deux nombres compris entre 0 et 99 en assembleur

ToutEnMasm


Je ne suis plus a l'école ce qui me permet de dire au prof qui colle des exercices , d'adapter son assembleur a windows,ça serait beaucoup mieux ,MASM32 existe et on peut faire une simple multiplication sous windows.j'insiste ,c'est faisable !?
ToutEnMasm


vendredi 9 mai 2008 à 17:17:10 | ça m'interesse

bebelover1

salut à toi !
j'aurais aimé savoir comment on améliorerait ton programme qui se limite aux nombres compris entre 0 et  99 , afin d'élargir cette contrainte en -99  et +99
merci d'avance


Cette discussion est classée dans : db, mov, ax, al, dx


Répondre à ce message

Sujets en rapport avec ce message

Simple addition [ par nostra ] Big totoJe n'arrive pas à afficher les valeurs A (=3) et B(=2) ainsi que le résultat de l'addition. Merci de trouver le ou les erreurs commises.;----- Addition pourtant simple [ par nostra ] Big totoJe n'arrive pas à afficher le résultat de l'addition malgré les remarques de Nemesis. Merci de trouver le ou les erreurs commises. ;---------- loader problème de code [ par TRAX44 ] salut tout le monde !!g essayer de faire un loader (petit prog qui charge un autre prog) mais c un desartre je comprend pas très bien ce qui ne marche Peut on comparer deux binaire avec cmp ? [ par MrNice ] Lo le forum me revoila ave cun new prob...donc en fait g une table de variable, je prends al=0 je fait un xlat et je compare ce resultat avec une entr Ennoncés à corriger svp :-) [ par did2604 ] Bonjour à tous,Mon professeur m'a demandé de convertir les énoncés (en langage C) suivants en assembleur, quelqu'un aurait-il la gentilesse de me les petit probleme de debutant [ par freekc ] j'essaie de faire un ptit prog que lorsque l'on rentre son nom prenom etc . Il y est un recapitulatif qui se mette en dessous ms lorsque que le recapi probleme de conversation de hexa en ascii [ par wapiti ] voici le programme qui converti du binaire en ascii.model small.stack;-------------------------------------------------------------------------------- rs232 [ par TRAX44 ] salut,tout premièrement je sais qu'il ya des exemples sur le site!mais mon problème est autre je tiens à comprendre pourquoi mon code ne fonctionne pa pb int 21h ah=0ah [ par mat74 ] salut a ts ,voila j'ai fais un programme qui est censé lire une chaine entré par l'utilisateur et ensuite la reafficher . Il me demande bien d'entré u Kernel qui n'est pas chargé par le bootloader [ par JB_59 ] Salut tout le monde !Voilà j'ai un problème de chargement de Kernel; j'ai codé un boot loader en asm qui m'affiche la phrase "Chargement du kernel..."


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,328 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales