Froggy
fake geek
au même endroit ou tu déclare le nom de la routine 
.386
Donnees SEGMENT PARA PUBLIC USE16
Chaine1 db 'Entrez un nombre en hexadecimal: ','$'
Chaine2 db 'Voici le nombre en decimal: ', '$'
nbHexa db 2 dup(0)
nbDeci db 2 dup(0)
Donnees ENDS
Code SEGMENT PARA PUBLIC USE16
ASSUME DS: Donnees,CS:Code
EXTRN affiche, encode, passeligne, conversion
debut:
mov AX,Donnees
MOV DS,AX
mov dx, offset chaine1
call affiche
call passeligne
mov dx, offset nbHexa
call encode
call passeligne
call conversion
mov dx, offset chaine2
call affiche
mov ah,4cH
int 21h
Code ENDS
Pile SEGMENT PARA stack USE16 'stack'
db 256 dup (?)
Pile ENDS
end debut
.386
Donnees SEGMENT PARA PUBLIC USE16
Donnees ENDS
Code SEGMENT PARA PUBLIC USE16
Public affiche, encode, passeligne, conversion
affiche proc near
; affiche le contenu de la variable dans dx
;
; Entree: DX = offset de la variable … afficher
;
; Sortie: rien
;
push ax
mov ah,09h
int 21h
pop ax
ret
affiche endp
encode proc near
;Entree: DX = offset de la variable receptrice
;
;
;Sortie: ah = contient nombre caract pr‚sent dans le tampon
;
push bx
mov bx,dx
mov [bx],ah
mov ah,0Ah
int 21H
mov ah,[bx+1]
pop bx
ret
encode endp
passeligne proc near
; Passe … la ligne et fait un carriage return
;
; Entree: rien
;
; Sortie: rien
;
push ax
push dx
mov dl,0dh
mov ah,02h
int 21h
mov dl,0ah
mov ah,02h
int 21h
pop dx
pop ax
ret
passeligne endp
conversion proc near
ret
conversion endp
END
Code ENDS
Pile SEGMENT PARA stack USE16 'stack'
db 256 dup (?)
Pile ENDS
Ahava a dit:Décimal ? Tu dois alors utiliser le co-processeur mathématique pour ça...
T'es prêt à t'y frotter ?![]()