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