Изучение свойств дисковой памяти — КиберПедия 

Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...

История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...

Изучение свойств дисковой памяти

2019-08-04 131
Изучение свойств дисковой памяти 0.00 из 5.00 0 оценок
Заказать работу

Цель работы: изучить основные требования к программированию функций DOS для обработки дисковых файлов; функций BIOS для записи и чтения дисковых файлов.

Общие сведения.

Обработка дисковых файлов в базовой DOS включает определение блока управления файлом (FCB - FILE CONTROL BLOCK), который описывает файл и его записи. Передача адреса блока FCB в DOS обязательна для всех дисковых операций ввода - вывода. Для выполнения операций ввода - вывода на диске в DOS необходимо определить блок FCB в области данных, который используется главным образом для обработки файлов в текущем каталоге. Блок FCB содержит описание файла и его записей в приведенном ниже формате. Пользователь должен инициализировать байты 0... 15 и 32...36, байты 16...31 устанавливаются DOS:

Байты назначение

0 Указывает дисковод: Код 01 - для дисковода А;

02- для В и т.д.

1...8 Имя файла

9...11 Тип файла для дополнительной идентификации

12...13 Номер текущего блока

14...15 Логический размер записи

16...19 Размер файла

20...21 Дата

22...31 Зарезервировано для DOS

32 Текущий номер записи в текущем блоке

33...36 Относительный номер записи

Для ссылки на каждый дисковый файл программа должна содержать правильно составленный блок управления файлом. Операции ввода - вывода на диск требуют установки адреса блока FCB в регистре DX. Доступ к полям блока FCB осуществляется по этому адресу с помощью регистровой пары DS:DX. Для создания нового файла программа использует функцию 16Н в прерывании DOS INT 21H следующим образом:

MOV АН, 16Н; создание

LEA DX, FCBNAME; дискового файла

INT 21H; вызов DOS

Система DOS осуществляет поиск по имени и типу файла, взятых из соответствующих полей FCB в оглавлении. Если элемент оглавления, содержащий необходимое имя (и тип) будет найден, то DOS очищает найденный элемент для нового использования, если такой элемент не будет найден, то DOS ищет свободный элемент. Затем операция устанавливает размер файла в 0 и открывает файл. На этапе открытия происходит проверка доступного дискового пространства, результат проверки устанавливается в регистре AL:

00 на диске есть свободное пространство

FF на диске нет свободного пространства

Аналогичным образом программа использует в прерывании

DOS INT 21H следующие функции:

15Н - Для последовательной записи на диск;

10Н - Для закрытия файла;

OFH - Открытие файла;

14Н - Для последовательного чтения записей с диска;

21H - Для прямого чтения записи;

22Н - Для прямой записи;

11Н и 12Н - Поиск элементов оглавления;

13Н - Удаление файла;

17Н - Переименование файла;

0ЕН - Установка текущего дисковода

Для определения выводной записи необходимо прежде всего указать начальный адрес области передачи данных (DTA - DISK TRANSFER AREA). Затем с помощью функции 1АН необходимо сообщить DOS адрес DTA. Активным может быть только один DTA.

MOV АН, 1АН; установка адреса

LEA DX, DTANAME; DTA

INT 21H; вызов DOS

Дисковые операции можно программировать непосредственно на уровне BIOS. Дисковая операция BIOS INT 13H рассматривает все записи, как имеющие размер сектора, а адресацию диска осуществляет в терминах действительных номеров дорожки и сектора. Для дисковых операций чтzения, записи и верификации необходима инициализация следующих регистров:

АН - тип операции: чтение, запись, верификация или форматирование;

AL - число секторов;

СН- номер дорожки;

CL - номер головного сектора;

DH - номер головки (стороны): 0 или 1 для дискеты;

DL - номер дисковода: 0=А, 1=В и т. д.

ES: ВХ- адрес буфера ввода- вывода в области данных.

Для указания необходимой дисковой операции необходимо перед INT 13H загрузить в регистр АН соответствующий код.

АН=00: сброс системы контроллера дисковода

АН=01: определить состояние дисковода

АН=02: чтение секторов

АН=03: запись секторов

АН=04: верификация секторов

АН=05: форматирование дорожек

Содержание задания

1. Напишите программу, которая создает дисковый файл, содержащий записи из трех элементов: номера товара (пять символов), наименования товара (12 символов) и стоимости единицы товара (одно слово). Ввод этих значений должен осуществляться с клавиатуры.

2. Напишите программу, которая выводит на экран файл, созданный в вопросе

3. Напишите программу, выполняющую одно блочное чтение файла с приведенными ниже данными и выводящую каждую запись на экран:

Номер Цена Наименование

023 00315 Ассемблеры

024 00430 Компоновщики

027 00525 Компиляторы

049 00920 Компрессоры

114 11250 Редакторы

232 05635 Контроллеры

999 00000

4. Измените программу из вопроса 3 так, чтобы цены записывались на диск в двоичном формате.

5. Напишите команды для BIOS INT 13H, выполняющие чтение одного сектора в область памяти INDISK, с дисковода А, головки 0, дорожки 6 и сектора 3.

6. Напишите команды для BIOS INT 13H, выполняющие запись трех секторов из области памяти OUTDISK на дисковод В, головку 0, дорожку 8 и сектор 1.

Лабораторная работа №7

Изучение управления печатью

Цель работы: изучить возможность программ на языке Ассемблер для вывода информации на печатающее устройство

Общие сведения.

Вывод на принтер несколько проще, чем операции с экраном и диском. Для печати существует несколько операций, выполняющихся через DOS INT 2IH и INT 17H. Команды, посылаемые на принтер, включают коды "Прогон страницы", "Перевод строки" и "Возврат каретки".

Принтеры классифицируются по качеству печати. Матричный принтер формирует символы в виде матрицы точек и обеспечивает нормальный, узкий и широкий форматы символов. Более совершенные матричные принтеры обеспечивают точечную графику, наклонный шрифт, жирную печать и двойную плотность, а также могут печатать графические символы, напри -мер, символы игральных карт. Высококачественные печатающие устройства ограничены набором символов на сменной "ромашке" или барабане, но обеспечивают высокое качество печати и большое разнообразие шрифтов. Лазерные принтеры обладают преимуществами как для матричной графики, так и для качественной печати текстов.

Стандартные символы управления печатью включают следующие:

08 - возврат на шаг

09 - горизонтальная табуляция

0А - перевод строки

0B - вертикальная табуляция

0С - прогон страницы

0D - возврат каретки

Для печати в базовой версии DOS необходимо установить в регистре АН код функции 05, а в регистре DL - распечатываемый символ, а затем выполнить команду INT 2IH следующим образом

MOV АН, 05; запрос функции печати

MOV DL, char; распечатываемый символ

INT 2IH; вызов DOS

С помощью этих команд можно передавать на принтер управляющие символы. Однако, печать обычно предполагает вывод полной или частичной строки текста и пошаговую обработку области данных, отформатированной по строкам. Ниже показана программа печати полной строки. Сначала в регистр SI загружается начальный адрес области HEADG, а в регистр СХ - длина этой области. Цикл, начинающийся по метке Р20, выделяет очередной символ из области HEADG и посылает его на принтер. Так как первый символ области HEADG - "возврат каретки", а последние два - "перевод строки", то заголовок печатается в начале новой страницы и после него следует двойной интервал:

HEADG DB OCH, INDUSTRIAL BICycle Mfrs’, ODH, OAH, OАМ LEA SI, HEADG; установка адреса и

MOV CX, 27; длины заголовка

Р20:

MOV АН,05; запрос функции печати

MOV DL, [SI]; символ из заголовка

INT 21H; вызов DOS

INT SI; следующий символ

LOOP P20

Пока принтер не включен, DOS выдает сообщения " out of paper". После включения питания программа начинает работать нормально. Для прекращения печати можно нажать клавиши CTRL/BREAK.

Прерывание BIOS INT 17H обеспечивает три различные операции, определенные содержимым регистра АН:

АН=0: Данная операция выполняет печать одного символа на три принтера по номерам 0,1 и 2 (стандартное значение - 0)

MOV АН, 00; запрос функции печати

MOV AL, CHAR; символ, выводимый на печать

MOV DX, 00; выбор принтера о

INT 17H; вызов BIOS

Если операция не может распечатать символ, то в регистре АН устанавливается значение 01.

АН=1: Инициализация порта печатающего устройства:

MOV АН, 01; запрос на инициализации порта

MOV DX, 00;выбор порта о

INT 17H; вызов BIOS

Данная операция посылает на принтер символ "прогон страницы", поэтому ее можно использовать для установки положения "начало страницы". Большинство принтеров выполняют данную установку автоматически при включении.

АН=2: Чтение состояния порта принтера:

MOV АН, 02; функция чтения состояния порта

MOV DX, 00;выбор порта о

INT 17H; вызов BIOS

TEST АН, 01101001В; принтер готов?

JNZ errmsg; нет - выдать сообщение

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

Содержание задания

Напишите программу для DOS, выполняющую: а) прогон страницы; б) Печать вашего имени; в) перевод строки и печать вашего адреса; г) перевод строки и печать названия вашего города; д) прогон страницы.

2. Закодируйте строку, в которой имеется следующая информация: возврат каретки, прогон страницы, включение узких букв (OF), заголовок (ваша фамилия) и выключение узких букв (12).

3. Измените программу из вопроса 1 для использования BIOS INT 17H. Обеспечьте проверку состояния принтера.

4. Измените программу из вопроса 1 так, чтобы пункты б), в), г), выполнялись по 5 раз.

 

Лабораторная работа №8.


Поделиться с друзьями:

Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...

Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.032 с.