Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лаба 3-6.923.DOC
Скачиваний:
6
Добавлен:
21.02.2016
Размер:
175.1 Кб
Скачать

Лабораторна робота № 4

Введення/виведення символьної інформації за функціями 21h

Мета роботи. Вивчити команди мови асемблер, що дозволяють здійснювати введення/виведення символьної інформації за функціями 21h .

1. Порядок виконання роботи

1.1. Ознайомитися з основними командами мови асемблер, що дозволяють здійснювати введення/виведення символьної інформації за функціями 21h.

1.2. Розробити алгоритм і написати програму.

1.3. Провести відладку програми.

1.4. Виконати програму.

2. Зміст звіту

2.1. Тема, мета і порядок виконання роботи.

2.2. Короткий опис основних команд мови асемблер, які використовувалися в даній лабораторній роботі.

2.3. Алгоритм розв’язання задачі.

2.4. Листинг програми (написаний від руки або надрукований).

2.5. Результат виконання програми.

2.6. Висновок.

3. Індивідуальні завдання

3.1. Створити програму, що дозволяє здійснювати введення/виведення символьної інформації за функціями переривання 21h . Варіанти завдання приведені в табл. 4.

Таблиця 4

№ варіанта

Завдання:

вивести рядок з 20 символів,

№ варіанта

Завдання: вивести всі літери латинського алфавіту

1

що чергуються, ABC

16

крім A,B,H,V

2

що чергуються, DEF

17

крім W,E,X,Z

3

що чергуються, FGH

18

крім M,L,G,S

4

що чергуються, XYZ

19

крім D,G,H,Q,W

5

що чергуються, KLM

20

крім E,X,V,B,N

6

що чергуються, AB

21

крім Z,X,C,V,B

7

що чергуються, CD

22

крім N,M,S,D,P

8

що чергуються, EF

23

крім F,G,E,R,Y

9

що чергуються, GH

24

крім P,L,M,Q,S

10

що чергуються, KL

25

вивести рядок символів, що чергуються, AZ

11

A

26

що чергуються, BX

12

B

27

що чергуються, CH

13

C

28

що чергуються, KL

14

D

29

що чергуються, OQ

15

F

30

що чергуються, UT

4. Короткі теоретичні відомості

4.1. Введення символу з клавіатури

На вході : AH = 1 .

На виході: AL - уведений символ.

Система чекає, поки з клавіатури не буде введений символ, потім символ виводиться на дисплей. Код введеного символу порівнюється з кодом Ctrl/Break і Ctrl/C. При збігові кодів виконується INT 23h. Для введення розширених кодів ASCII потрібно виконання двох викликів. Перший виклик повертає 00h, сигналізуючи про те, що наступним буде розширений код.

Приклад: mov ah,1

int 21h .

4.2. Виведення символу на дисплей

На вході :AH = 2

DL - символ, виведений на дисплей.

  • Символ "Backspace" (код 08h) викликає зрушення курсору вліво на одну позицію зі стиранням символу в поточній позиції.

  • Якщо після виведення має місце переривання від натискання клавіш Ctrl/Break або Ctrl/C, то виконується INT 23h.

4.3. Виведення символьного рядка

На вході : AH = 9

DS:DX - адреса рядка, що закінчується $ (код 24h).

Кожний символ у рядку буде виводитися на дисплей так само, як і при роботі AH=2.

Приклад: label db 'виведений рядок'

mov ah,9

lea dx,label

int 21h .

4.4. Введення символьного рядка з клавіатури

На вході :AH = 0Ah

DS:DX - адреса буфера для введення.

Формат буфера: зміщення довжина

+0 1 довжина буфера (не більш 255)

+1 1 повернута ДОС кількість введених байтів

+2 ? введені байти.

Введення з клавіатури і заповнення буфера продовжується доти, поки не буде натиснута клавіша Enter (ВВЕДЕННЯ). Якщо буфер заповнений цілком (кількість вміщених символів дорівнює його довжині мінус один), то кожний знову введений символ ігнорується і викликає звуковий сигнал. При натисканні клавіші Enter (ВВЕДЕННЯ) у буфер записується код "повернення каретки" (0Dh), а в другий байт буфера записується кількість символів, введених із клавіатури (не враховуючи символу "повернення каретки").

Приклад: buff db 80, ?, 80 DUP(?)

mov ah,0ah

lea dx,buff

int 21h .

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]