1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| global main
;===========================
section .bss
;===========================
c RESB 1 ; le caractère lu
;===========================
section .text
;===========================
main:
.boucle:
MOV EAX,3 ; lecture
MOV EBX,0 ; au clavier
MOV ECX,c
MOV EDX,1
INT 0x80
CMP EAX,0
JE .fin ; il n'y a plus rien à lire
CALL majuscule
MOV EAX,4 ; écriture
MOV EBX,1 ; à l'écran
MOV ECX,c
MOV EDX,1
INT 0x80
JMP .boucle
.fin: MOV EAX,1
MOV EBX,0
INT 0x80
RET
; ==========================
majuscule: ; <= mon code à partir d'ici
.comparaison:
MOV AL,[c]
CMP AL,'a' ;vérifie que c a un code ASCII supérieur à celui de a
JB .fin
CMP AL,'z' ;vérifie que c a un code ASCII inférieur à celui de z
JA .fin
SUB AL,0x20 ;transforme la lettre de c en majuscule
JMP .fin
.fin:
RET |
Partager