Mov
Mov
Mov
Mov
Mov
Mov
int 21h
jmp main ; et retour au debut
fin: mov ah,4Ch
int 21h
Code Ends
End main
4. Affichage d'un octet en binaire : afficher la valeur
contenue dans un registre 8 bits (BL).
L'ide est d'utiliser un masque BL AND 10000000 pour tester le
bit de gauche, et de dcaler BL gauche pour parcourir ainsi
tous les bits.
assume CS:Code
Code segment
main: mov BL, 10 ; on teste le programme avec BL=10
mov CX,8 ; compteur de boucle
masque: Test BL, 10000000b
JNZ bit1
bit0: Mov DL,"0"
jmp affiche
bit1: Mov DL,"1"
affiche: mov AH,2 ; affichage
int 21h
SHL BL,1
Loop masque
fin: mov ah,4Ch
int 21h
Code Ends
End main
5. Modifier le programme caracter.asm pour qu'il affiche (en
binaire) le code ASCII de
chaque caractre saisi.
assume CS:Code
Code segment
main: mov AH,1 ; saisie
int 21h ; le caractere lu arrive dans AL
Cmp AL, 4
JZ Fin ; si AL=4 alors Fini
mov BL, AL
mov CX,8 ; compteur de boucle
masque: Test BL, 10000000b
JNZ bit1
bit0: Mov DL,"0"
jmp affiche
bit1: Mov DL,"1"
affiche: mov AH,2 ; affichage d'un bit
int 21h
SHL BL,1
Loop masque ; fin de la boucle d'affichage des 8 bits
jmp main ; et retour au debut
fin: mov ah,4Ch
int 21h
Code Ends
End main
Exercice N3 : Saisie au clavier d'un nombre dcimal
Saisie au clavier d'un nombre dcimal
Ecrire un programme qui lit un entier dcimal au clavier et le
sauvegarde en mmoire dans
une variable de type octet N1. Pour cela, commencer par crire
les programmes suivants :
1. Lire un caractre au clavier et tester si son code ASCII
est celui d'un chiffre. Si c'est le cas, ranger ce chiffre (et
non son code ASCII) dans N1, sinon afficher "N".
(oneread.asm)
1. Lire un caractre au clavier et tester si son code ASCII
est celui d'un chiffre. Si c'est le cas, ranger ce chiffre (et
non son code ASCII) dans N1, sinon afficher "N". (oneread.asm)
2. assume CS:Code
3. Code segment
4. main: mov AH,1 ; saisie
5. int 21h ; le caractere lu arrive dans AL
6. Cmp AL, "0"
7. JB pasbon ; si AL<"0" ce n'est pas un chiffre
8. Cmp AL,"9"
9. JA pasbon ; si AL>"9" ce n'est pas un chiffre
10. Sub AL,"0" ; sinon le chiffre= code ASCII-ASCII(0)
11. Mov N1, AL
12. jmp fin
13. pasbon: mov DL, "N"
14. mov AH,2 ; affichage de "N"
15. int 21h
16. fin: mov ah,4Ch
17. int 21h
18. Code Ends
End main