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

Приложение. Некоторые функции системного сервиса msdos. Прерывание 21h Организация ввода с клавиатуры

Функция 01h – ввод символа с эхом.

Вызов: AH=01h

Возврат: AL=байт входных данных.

07h – Ввод символа без эха и без обработки ^+C.

08h – Ввод символа без эха с обработкой ^+C.

Организация вывода

Для вывода на экран одного символа служит функция 02h.

Обращение:

AH=02h

DL=байт данных.

Для вывода последовательности символов служить функция 09h.

Вызов:

AH=09h

DS:DX=адрес выводимой строки.

Последний байт выводимой строки должен хранить код символа ‘$’.

Для формирования строк нужно включать управляющие коды 0Ah(10) и 0Dh(13).

Пример:

mes db ‘Пример многострогчного’,0ah,0dh

db ‘текста на экране’,’$’

Функция 40h.

Служит для вывода заданного количества байтов на требуемое устройство. Для идентификации устройств используются дескрипторы.

При выводе информации на экран служит дескриптор 1.

Вызов:

AH=40h

BX=дескриптор.

CX=количество выводимых байтов.

DS:DX=адрес выводимой строки.

При работе с многострочным текстом можно использовать счетчик текущего адреса для определения количества выводимых байтов.

Пример:

mes db ‘Пример многострочного’,0ah,0dh

db ‘текста на экране’

actlen=$-mes

Файлы и каталоги

Функция 3Ch. Создание файла.

Обращение:

AH=3Сh

CX=атрибуты.

DS:DX=адрес спецификации файла ASCIIZ.

Возврат:

AX=дескриптор.

Ошибка:

CF=1

AX=код ошибки.

Функция 3Eh. Закрытие файла.

Обращение:

AH=3Eh

BX=дескриптор.

Возврат:

CF=1,ошибка.

AX=код ошибки.

Функция 3Dh. Открытие файл.

Обращение:

AH=3Dh

AL=режим доступа.

0- чтение

1- запись

2- запись и чтение

DS:DX- адрес спецификации файла ASCIIZ.

Возврат:

AX=дескриптор.

Ошибка:

СF=1,ошибка.

AX=код ошибки.

Функция 3Fh.Чтение из файла, устройства.

Обращение:

AH=3Fh

BX=дескриптор.

CX=число считываемых байт

DS:DX=адреса буфера ввода.

Возврат:

AX=число переданных байт.

Ошибка:

CF=1,ошибка.

AX=код ошибки.

Функция 4Ch. Закрытие всех файлов и выход в ДОС.

Обращение:

AH=4Ch

AL=код возврата.

Функция 40h. Вывод на устройство.

Обращение:

AH=40h

BX=дескриптор.

Стандартные дескрипторы:

1 – вывод CON

2 – стандартная ошибка CON

3 – порт AUX (COM1)

4 – PRN (LPT1)

CX=число выводимых байт

DS:DX=адрес буфера вывода

Возврат:

AX=число переданных байт

Ошибка:

CF=1,ошибка.

AX=код ошибки.

Функция 41h. Удаление файла.

Обращение:

AH= 41h

DS:DX= спецификация файла в формате ASCIIZ.

Ошибка:

CF= 1

AX= код ошибки.

Функция 43h. Работа с атрибутами файлов.

Обращение:

AH=43h

AL=тип работы.

00h – получение атрибутов

01h – установка атрибутов

CX=атрибуты файла

01h – чтение

02h – скрытый

04h – системный

20h – архивный

DS:DX=адрес спецификации файла ASCIIZ

Возврат:

СX=атрибуты при AL=00h

Ошибка:

CF=1,ошибка.

AX=код ошибки.

Функция 56h. Переименование файла.

Обращение:

AH= 56h

DS:DX= адрес текущей спецификации файла.

ES:DI= адрес новой спецификации файла.

Ошибка:

CF= 1

AX= код ошибки

Функция 68h. Сброс буферов в файл.

Обращение:

AH= 68h

BX= дескриптор.

Ошибка:

CF= 1

AX= код ошибки.

Функция 39h. Создание каталога.

Обращение:

AH= 39h

DS:DX= адрес пути в формате ASCIIZ.

Ошибка:

CF= 1

AX= код ошибки.

Функция 3Ah. Удаление каталога.

Обращение:

AH= 3Ah

DS:DX= адрес пути в формате ASCIIZ.

Ошибка:

CF= 1

AX= код ошибки.

Функция 3Bh. Смена текущего каталога.

Обращение:

AH= 3Bh

DS:DX= адрес пути в формате ASCIIZ.

Ошибка:

CF= 1

AX= код ошибки

Функция 47h. Получение текущего каталога.

Обращение:

AH= 47h

DL= код дисковода (0= текущий, 1= А и т.д.)

DS:SI= адрес буфера размером 64 байта

Возврат:

имя каталога в буфере в формате ASCIIZ.

Ошибка:

CF= 1

AX= код ошибки.