
- •Лабораторная работа № 3 Ввод и вывод данных Цель работы
- •Введение
- •Символьный ввод-вывод dos
- •Функция 0Bh – проверить статус ввода
- •Функция 0Ch – ввод с очисткой
- •Символьный ввод-вывод bios Прерывание int 16h – ввод с клавиатуры
- •Прерывание int 10h – видеосервис bios
- •Фильтрация ввода
- •Пример программы
- •Варианты заданий
- •Заключение
- •Литература
- •Приложения
- •218, 194, 191 ; Da c2 bf
Пример программы
Ниже приведен пример программы на языке Ассемблер, выполняющей фильтрацию ввода (пропускаются только латинские прописные буквы). Для ввода использована функция 08hDOS, т.к. прежде, чем выводить символ, необходимо выполнить фильтрацию. По клавишеESCпредусмотрен выход из программы (при этом дополнительно выводится символ «!»). СочетаниеCtrl-Cтакже прервет программу, но это будет аварийное окончание. После фильтрации допустимый символ выводится на экран функцией02hDOS.
name filter1
;
LAT CAPs only
.model small
ESC_ equ 1Bh
.code ;--------------------- start: mov ax,@data mov ds,ax next: mov ah,08h ;
no echo int 21h cmp al,ESC_ je exit ;
sym = ESC cmp al,'A' jb next ;
sym < 'A' cmp al,'Z' ja next ;
sym > 'Z' mov dl,al mov ah,02h ;
sym to con int 21h jmp next exit: mov dl,’!’ ;
add last symbol ‘!’ mov ah,02h int 21h .exit
;---------------------
end start
Задание 1. Фильтрация ввода. Выводить на экран разрешенные символы. Если вводится сочетание клавиш или управляющие коды, то выводить текст, например: «F1», «Alt-B», «Ctrl-C», «ESC», «PgUp». На запрещенные символы предусмотреть определенную реакцию (текст, звук и т.п.).
Задание 2. Преобразовать вводимые символы и вывести на экран.
Варианты заданий
№/№ вар.зад. |
Ввод символов |
Примечания |
1.1 |
0..9, +,-,*,/ |
Фильтрация |
1.2 |
Буквы строчные и прописные ® Только строчные |
Преобразование |
2.1 |
a..z, ?,/,<,> |
Фильтрация |
2.2 |
Буквы строчные и прописные ® Только прописные |
Преобразование |
3.1 |
A..Z, (,),:,; |
Фильтрация |
3.2 |
Буквы строчные и прописные ® Инвертировать регистр |
Преобразование |
4.1 |
а..я, №,% |
Фильтрация |
4.2 |
qwe asd zxc io ® Псевдографика одиночная |
Преобразование |
5.1 |
А..Я, !, ? |
Фильтрация |
5.2 |
QWE ASD ZXC IO ® Псевдографика двойная |
Преобразование |
6.1 |
F1..F10 |
Фильтрация |
6.2 |
Alt-1, Alt-2, Alt-3, Alt-4 ® Псевдографика фоновая |
Преобразование |
7.1 |
Ctrl-A..Ctrl-Z |
Фильтрация |
7.2 |
0,1,2,3,4,5,6,7,8,9 ® Цифры прописью |
Преобразование |
8.1 |
Alt-1..Alt-9 |
Фильтрация |
8.2 |
н, о, д, т, ч, п, ш, с, в, е ® 0,1,2,3,4,5,6,7,8,9 |
Преобразование |
9.1 |
Shift-F1..Shift-F10 |
Фильтрация |
9.2 |
Русские буквы строчные ® Латинские эквиваленты |
Преобразование |
10.1 |
Alt-F1..Alt-F10 |
Фильтрация |
10.2 |
Латинские буквы прописные ® Русские эквиваленты |
Преобразование |
11.1 |
0..9, a..z |
Фильтрация |
11.2 |
Клавиши управления курсором ® Соответств. названия |
Преобразование |
12.1 |
a..z, A..Z |
Фильтрация |
12.2 |
Буквы строчные и прописные ® Только строчные |
Преобразование |
13.1 |
0..9, а..я |
Фильтрация |
13.2 |
Буквы строчные и прописные ® Только прописные |
Преобразование |
14.1 |
а..я, А..Я |
Фильтрация |
14.2 |
Буквы строчные и прописные ® Инвертировать регистр |
Преобразование |
15.1 |
Up,down,left,right,PrUp,PgDn |
Фильтрация |
15.2 |
qwe asd zxc io ® Псевдографика одиночная |
Преобразование |
16.1 |
A..Z, А..Я |
Фильтрация |
16.2 |
QWE ASD ZXC IO ® Псевдографика двойная |
Преобразование |
17.1 |
a..z, а..я |
Фильтрация |
17.2 |
F1, F2, F3, F4 ® Псевдографика фоновая |
Преобразование |
18.1 |
TAB, ESC, SPACE, F11, F12 |
Фильтрация |
18.2 |
0,1,2,3,4,5,6,7,8,9 ® Цифры прописью |
Преобразование |
19.1 |
+,-,*,/,?,/,<,>,(,), : , ; , ! , ? |
Фильтрация |
19.2 |
н, о, д, т, ч, п, ш, с, в, е ® 0,1,2,3,4,5,6,7,8,9 |
Преобразование |
20.1 |
A..Z, Ctrl-A..Ctrl-Z |
Фильтрация |
20.2 |
Русские буквы прописные ® Латинские эквиваленты |
Преобразование |
21.1 |
0..9, Alt-1..Alt-9 |
Фильтрация |
21.2 |
Латинские буквы прописные ® Русские эквиваленты |
Преобразование |
22.1 |
Alt-A..Alt-Z |
Фильтрация |
22.2 |
Клавиши управления курсором ® Соответств. названия |
Преобразование |
23.1 |
Shift-F1..Shift-F10 |
Фильтрация |
23.2 |
rty fgh vbn kl, RTY FGH VBN KL ® Псевдографика од./дв. |
Преобразование |
24.1 |
Ctrl-F1..Ctrl-F10 |
Фильтрация |
24.2 |
П, п (В, в), К, к Б, б Ч, ч ® Масти карт |
Преобразование |
25.1 |
|
|
25.2 |
Латинские буквы строчные→Русские эквиваленты |
|
Примечание. Можно добавить произвольные данные по своему усмотрению.