Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ESC_ equ 1Bh
- org 100h
- start:
- mov ah, 8 ;Ввод символа
- int 21h
- cmp al, ESC_ ;Сравнение, нажат ли esc
- je exit ;Если нажат, то выполняется процедура exit
- ;Далее идет проверка, нажат ли любой из символов в промежутке от 91 до 96
- cmp al, 5bh
- je bell
- cmp al, 5ch
- je bell
- cmp al, 5dh
- je bell
- cmp al, 5eh
- je bell
- cmp al, 5fh
- je bell
- cmp al, 60h
- je bell
- ;Если нажат, то воспроизводится звуковой сигнал
- cmp al, 41h ;Если введенный символ меньше, чем код 65, то выполняется процедура bell
- jb bell
- cmp al, 7ah ;Если введенный символ больше, чем код 122, то выполняется процедура bell
- ja bell
- jmp toUpperCase ;Если введен правильный символ, то переводим букву в верхний регистр
- jmp start ;Выполняем процедуру заново
- toUpperCase:
- cmp al, 5Bh ;Если символ в верхнем регистре (меньше, чем код 91), то он просто выводится в консоль
- jb printSymbol
- sub al, 20h ;Если символ в нижнем регистре, то отнимаем 32 от его кода, чтобы сделать его большим
- jmp printSymbol ;Выводим его в консоль
- ret
- printSymbol:
- mov ah, 2 ;Функция вывода символа в консоль
- mov dl, al
- int 21h
- jmp start ;Переход к процедуре start
- ret
- exit:
- mov ah, 9 ;Вывод сообщения в консоль
- mov dx, exitMsg
- int 21h
- mov ah, 8 ;Ожидание ввода любого символа, после чего программа закроется
- int 21h
- ret
- bell:
- mov ah, 2
- mov dl, 7 ; 7 - звук
- int 21h
- jmp start ;Переход к процедуре start
- ret
- exitMsg db " press any button to exit$"
Add Comment
Please, Sign In to add comment