Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Контрольна робота№1.doc
Скачиваний:
1
Добавлен:
18.12.2018
Размер:
441.86 Кб
Скачать

Функції dos виводу даних на екран.

DOS надає наступні способи виводу даних на екран:

використання функційInt 21h (02h, 06h, 09h), що забезпечують посимвольний ввід з клавіатури в різних режимах;

звертання до екрана, як до файла, за допомогою функції 40h.

  • Функція 02h. Виведення одиничного символа.

Виводить символ, що знаходиться в регістрі DL, на екран. Для виводу стрічки функцію потрібно використати в циклі. Допускає перенаправлення виводу. Виконує обробку <Ctrl/С> при введенні цієї комбінації з клавіатури перед виводом кожного 64-го символа. Ця функція виводить і керуючі ASCII- символи з кодами 7, 8, 9, 0Ah, 0Dh. Символ з кодом 7 (bell, дзвінок) викликає звуковий сигнал, з кодом 8 (backspace )- повертає курсор на одну позицію ліворуч, з кодом 9 (tab, табуляція) - зміщає курсор на одну позицію праворуч, кратну 8. Дії керуючих клавіш з кодами 0Ah і 0Dh розглядалися раніше.

Виклик:AH=02h, Int 21h

Ввід:DL=ASCII -код символа

Вивід: AL= код останнього записаного символа (крім випадку, коли DL=09, тоді повертається значення 20h)

Використання даної функції розглянемо на прикладі процедури переходу на нову стрічку.

PROC

NewLine

 

 

push ax

 

 

push dx

 

 

mov ah, 2

;Запит функції 02h

 

mov dl, 13

;Повернення каретки

 

int 21h

;Виклик DOS

 

mov dl, 10

;перевід стрічки

 

int 21h

;Другий виклик DOS

 

pop dx

 

 

pop ax

 

 

ret

 

ENDP

NewLine

 

  • Функція 09h. Вивід стрічки.

Виводить рядок символів на пристрій стандартного виводу (використовується в системних програмах для виведення на екран інформаційних повідомлень). Рядок повинен закінчуватися символом $ (код 24h), який служить ознакою кінця рядка, і сам не виводиться. Допускає перенаправлення виводу. У повідомлення можуть бути включені і керуючі коди (7, 8, 9, 0Ah, 0Dh), які викликають відповідні їм дії (див. функцію 02h). Функція виконує обробку <Ctrl/С> при введенні цієї комбінації з клавіатури перед виводом кожного 64-го символа.

Приклад використання.

Promt

DB

'Name? $'

 

lea dx, [Promt]

;Адреса рядка Promt: DS:DX

 

mov ah, 09h

;Запит функції 09h

 

int 21h

;Виклик DOS

Функція 40h. Вивід даних в файл або в пристрій.

Універсальна функція виводу даних з буфера користувача в сегменті даних в файл або на пристрій, дескриптор якого вказується в регістрі BX. Дескриптор 1, закріплений за стандартним пристроєм виводу, забезпечує перенаправлення виводу. Значення регістра CX визначає число байтів, які повинні бути виведені, а пара регістрів DS:DX вказує адресу даних, що виводяться. Керуючі коди 08h, 0Ah, 0Dh і деякі інші приводять до виконання відповідних їм дій. Після завершення виводу при CF=0 регістр AX містить число дійсно виведених байтів, а при CF=1 -поворотний код помилки. Як і при використанні функції 3Fh, це коди помилок 5 або 6. Приклад використання.

Out_Area

DB

20 DUP(?)

 

mov ah, 40h

;Запит функції 40h

 

mov bx, 01

;Дескриптор дисплея

 

mov cx, 20

;Число байт, що пересилаються

 

lea dx, [Out_Area]

;Адреса буфера для повідомлення

 

int 21h

;Виклик DOS

 

mov cx, ax

 

sub cx, 2