w4kfu
Messages postés8Date d'inscriptionjeudi 2 avril 2009StatutMembreDernière intervention13 avril 2009
-
9 avril 2009 à 12:02
w4kfu
Messages postés8Date d'inscriptionjeudi 2 avril 2009StatutMembreDernière intervention13 avril 2009
-
9 avril 2009 à 14:06
J'écris actuellement un programme en assembleur utilisant la fonction
0Ah de linterruption 21h ( Entrée d'une chaine de caractère )
Voila le code ne fonctionnant pas :
.MODEL SMALL
.STACK 100h
.DATA
message db "Vous avez tapé:",10,13,"$"
chaine db 13,?,14 dup(?),?
.CODE
.8086
debut:
MOV AX,@data
MOV DS,AX
;Effacement du buffer et du saisi clavier
mov ah,0Ch
;Saisie au clavier d'une chaine
mov al,0Ah
;buffer ou sera placé la chaine
mov dx,OFFSET chaine
int 21h
;Affichage du message
MOV AH,09h
MOV DX,OFFSET message
INT 21h
;Affichage chaine rentré
MOV AH,09h
MOV DX,OFFSET chaine
INT 21h
END debut
Après compilation edition des liens du programme , j'execute , je rentre bien ma chaine mais au moment de l'affichage ce n'est pas du tout ma chaine qui s'affiche
w4kfu
Messages postés8Date d'inscriptionjeudi 2 avril 2009StatutMembreDernière intervention13 avril 2009 9 avril 2009 à 13:18
Je crois avoir compris mon problème , ma chaine ne se termine pas par un '$' donc normal qu'il m'affiche n'importe quoi.
Est ce bien cela le problème que je rencontre ?
w4kfu
Messages postés8Date d'inscriptionjeudi 2 avril 2009StatutMembreDernière intervention13 avril 2009 9 avril 2009 à 14:02
Voilà l'évolution de mon programme :
.MODEL SMALL
.STACK 100h
.DATA
message db "Tapez quelque chose:",10,13,"$"
message2 db 10,13,"Vous avez tapee :$"
chaine db 13,?,14 dup(?),?
.CODE
.8086
debut:
MOV AX,@data
MOV DS,AX
;Affichage du message de demande de frappe
MOV AH,09h
MOV DX,OFFSET message
INT 21h
;Effacement du buffer et du saisi clavier
mov ah,0Ch
;Saisie au clavier d'une chaine
mov al,0Ah
;buffer ou sera placé la chaine
mov dx,OFFSET chaine
int 21h
;On met bx à 0
xor bx,bx
;On met le nombre de caractere lu dans bl
mov bl,byte ptr[chaine+1]
;On ecrit 0 après la chaine
mov byte ptr[chaine+2+bx],0
;Affichage du message
MOV AH,09h
MOV DX,OFFSET message2
INT 21h
;Affichage chaine rentré
MOV AH,09h
MOV DX,OFFSET chaine+2
INT 21h
;;fin du programme et retour au dos
MOV AH,4Ch
INT 21h
END debut
Le programme me r affiche bien ma chaine , mais j'ai parfois l'apparition de caractère bizarre à la fin du programme...