1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| bits 16
org 100h
segment.bss
somme reb 2
quot resb 1
chiffre resb 10
segment .data
txt db 'veuillez saisir un chiffre svp $'
segment .text
mov ah,9
mov dx,txt
int 21h ;afficher (entrer un chiffre svp)
mov ah,0ah
mov dx,chiffre ;lire les aractères
mov byte[chiffre],4 ;taille max
int 21h
mov word[somme],0
mov bx,0
mov cl,byte[chiffre+1]
mov si,2
mov dl,100
ici:
mov al,[chiffre+si] ;stocker le 1er caractere dans al
sub al,48 ;valeur correspondante
mul dl ;resultat dans ax
add somme,ax ;nouvelle somme=ancienne somme+resultat
mov al,dl
mov ah,0 ;coeff dans ax
div quot ;diviser ax par quot :nouveau coeff
mov quot ,al
dec cl ;decrementer cl pou passer au caractere suivant
inc si
cmp cl,1
je fin ;si egal on s'en va
loop ici
fin:
mov ah,07
int 21h
mov ax,4c00h
int 21h |
Partager