J'écris un programme qui va lire et écrire des caractères, en convertissant les minuscules en majuscules. Ceci est mon premier programme d'assemblage, donc j'essaye d'obtenir d'abord le programme pour lire dans un personnage et l'écrire. C'est ce que j'ai codé jusqu'à présent:Assembly Language: Lire (sans écho) et écrire
.model small
.8086
.data
lower db 'a'
.code
start:
mov ax,@data
mov ds,ax
mov ah,8
int 21h
mov dl,al
mov ah,2
int 21h
exit:
mov ax,4c00h
int 21h
end start
Ai-je manipulé la lecture/écriture correctement? Quand j'exécute ce programme et que j'entre dans un personnage, j'en vois seulement une occurrence. Ça ne devrait pas être deux? Un pour la lettre que j'ai tapé, puis un pour la lettre retourné? Par exemple, si je tape d, je vois:
d
, mais je ne devrais pas voir
d
d
or
dd
Merci. Nous ne sommes pas autorisés à utiliser l'écho pour cette tâche, donc j'essaie simplement de lire dans un caractère et de l'écrire ensuite sur l'affichage. Je pense que je lis correctement le caractère, mais si j'écris le caractère à l'affichage, alors mon programme ne devrait-il pas imiter l'écho? Peut-être qu'il y a une erreur avec ma méthode d'écriture? – raphnguyen
@raphnguyen: Non, vous ne devriez pas voir deux caractères. Votre code lit un caractère, sans écho, puis sort le caractère. Puisque vous lisez sans écho, le personnage n'est pas sorti sur la console tant que vous ne l'avez pas fait. Pour voir ce que je veux dire, changez la ligne qui se lit 'mov dl, al'' mov dl, 'X''. Lorsque vous exécutez le programme, quelle que soit la touche sur laquelle vous appuyez, la sortie sera 'X'. –
Merci encore, Jim. Joué avec le programme un peu plus et ont fait beaucoup de progrès. Je pense que je comprends comment ça fonctionne maintenant. – raphnguyen