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
| AFFICHER_AX_DEC: ;affiche une valeur comprise entre 0 et 65535 contenue dans AX
push dx cx bx ax
mov bx, 2710h ;10000 en dec
xor cl, cl
boucle2:
xor dx, dx
div bx
;test pour ne pas afficher les zéros de devant
or cl, al
cmp cl, 0
je nepasafficherzero2
push ax
add al, 30h ;48 en dec
mov ah, 0Eh
int 10h
pop ax
nepasafficherzero2:
cmp bx, 1
je finboucle2
push ax dx
xor dx, dx
mov ax, bx
mov bx, 000Ah ;pour diviser par 10 soit 000A
div bx
mov bx, ax
pop ax ;je récupère dx dans ax
inc sp ;j'incrémente de 2 sp pour compenser le push ax d'avant
inc sp
jmp boucle2
finboucle2:
cmp cl, 0
jne fin2
mov ax, 0E30h
int 10h
fin2:
pop ax bx cx dx
ret ; retour au sous-programme |
Partager