Angy
Elite
Bonjour!
J'ai un petit problème, comme je suis assez novice en turbo assembleur. J'essaie de récupérer un nombre que j'ai entré au clavier pour pouvoir faire une soustraction dessus. Mais je n'arrive pas à récupérer les chiffres exacts que j'ai encodé :[]
J'ai besoin de soustraire de 30 chacun des chiffres (vu qu'ils sont en ascii) pour les avoir décimal, mais sachant que je n'arrive pas à récuperer, je suis un peu mal en point :-D
Quelqu'un saurait un peu m'éclairer?
Merci bien
J'ai un petit problème, comme je suis assez novice en turbo assembleur. J'essaie de récupérer un nombre que j'ai entré au clavier pour pouvoir faire une soustraction dessus. Mais je n'arrive pas à récupérer les chiffres exacts que j'ai encodé :[]
J'ai besoin de soustraire de 30 chacun des chiffres (vu qu'ils sont en ascii) pour les avoir décimal, mais sachant que je n'arrive pas à récuperer, je suis un peu mal en point :-D
Quelqu'un saurait un peu m'éclairer?
Merci bien
Code:
.386
Donnees SEGMENT PARA PUBLIC USE16
Question db 'Bonjour,quel est votre nom? ','$'
Question1 db 'De quel nombre voulez vous connaitre la parite? ','$'
Repet db 'Bonjour, ','$'
Nom db 18 dup(20)
Maj db 1 dup(20)
Nb db 2 dup(0)
nbcar db 2 dup(0)
parite db ' est un nombre ','$'
Donnees ENDS
Code SEGMENT PARA PUBLIC USE16
ASSUME DS: Donnees,CS:Code
debut:
mov AX,Donnees
MOV DS,AX
MOV DX,offset question
call affiche ; affiche la demande de nom
call passeligne
mov dx,offset Nom
call encode ; encodage du nom
call passeligne ; passage a la ligne suivante
mov dx,offset repet
call affiche ; affiche bonjour,
mov dx, offset nom[2]
call affiche ; affiche le nom
call passeligne
mov dx, offset question1
call affiche ; affiche la demande du nombre
call passeligne
mov dx, offset nb
call encode ; encodage du nombre
call passeligne ;passage a la ligne suivante
call calculparite
mov dx, offset nb
call affiche ; affichage du nombre
mov dx, offset parite
call affiche ; affiche est un nombre
mov ah,4cH
int 21h
affiche proc near
push ax
mov ah,09h
int 21h
pop ax
ret
endp
encode proc near
push bx
mov bx,dx
mov [bx],ah
mov ah,0Ah
int 21H
mov ah,[bx+1]
pop bx
ret
endp
passeligne proc near
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
endp
calculparite proc near
push ax
push dx
push bx
mov bl,02
mov ax, offset nb
div bl
pop bx
pop ax
pop dx
ret
endp
Code ENDS
Pile SEGMENT PARA stack USE16 'stack'
db 256 dup (?)
Pile ENDS
end debut