Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
68
Добавлен:
15.06.2014
Размер:
163.33 Кб
Скачать

Пример программы

Ниже приведен пример программы на языке Ассемблер, выполняющей фильтрацию ввода (пропускаются только латинские прописные буквы). Для ввода использована функция 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

Латинские буквы строчные→Русские эквиваленты

Примечание. Можно добавить произвольные данные по своему усмотрению.

Соседние файлы в папке Лаба Лаб_1-5 Методички