Страница: 5/6
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
Данная операция посылает на принтер символ "прогон страницы", поэтому ее можно использовать для установки положения "начало страницы". Большинство принтеров выполняют данную установку автоматически при включении.
Реферат опубликован: 17/02/2008