- •Программное управление — основа автоматизации вычислительного процесса
- •2 Состав машинных команд
- •3 Режимы работы компьютеров
- •3.1 Однопрограммные и многопрограммные режимы
- •I.Система прерываний программ в пк
- •3.2 Адресация регистров и ячеек памяти в пк
- •3.3 Относительная адресация
- •II.Стековая адресация
- •3.4 Элементы программирования на языке ассемблер
- •4 Основные компоненты языка ассемблер
- •4.1Алфавит языка
- •4.2 Константы (числа и строки)
- •4.3 Директивы (псевдооператоры)
- •4.4 Модификаторы
- •4.5 Адресация регистров и ячеек памяти в ассемблере
- •4.6 Непосредственная адресация
- •4.7 Прямая адресация регистров мпп
- •4.8 Адресация ячеек оп
- •Основные команды языка ассемблер
- •A.Команды пересылки данных
- •I.Команды сложения, вычитания и сравнения
- •1.Команды приращения
- •A.Команды умножения
- •I.Команды безусловной передачи данных
- •4.9 Команды перехода к подпрограмме и выхода из подпрограммы
- •4.10 Команда перехода к подпрограмме: call opr
- •4.11 Команда выхода из подпрограммы
- •4.12 Команды условной передачи управления
- •4.13 Команды условной передачи управления для беззнаковых данных
- •4.14 Команды условной передачи управления для знаковых данных
- •4.15 Команды условной передачи управления для прочих проверок
- •4.16 Команды управления циклами
- •4.17 Команды прерывания
- •4.18Основные директивы ассемблера
- •4.19 Директивы определения идентификаторов
- •4.20 Директивы определения данных
- •Директивы определения сегментов и процедур
- •4.21 Директивы управления трансляцией
- •5 Краткие сведения о программировании процедур работы с устройствами ввода-вывода
- •5.1 Программирование работы с дисплеем
- •5.2 Видеооперации с прерыванием 10н bios
- •5.3 Видеооперации с прерыванием 21н dos
- •5.4 Программирование работы с клавиатурой
- •5.5 Программирование работы с принтерами
- •5.6 Печатающие устройства параллельного типа
- •5.7 Печатающее устройство последовательного типа
- •5.8 Программирование работы с файлами
- •5.9 Прерывания, используемые при работе с файлами на дисках
- •5.10 Некоторые аспекты создания исполняемых программ
- •5.11 Процедуры формирования программы
- •5.12 Структура исходной программы на языке ассемблера для получения исполняемой программы .Ехе
- •5.13 Основные сведения о листинге и его структуре
- •5.14 Особенности структуры машинных команд
- •5.14 Последовательность работы пк при выполнении программы
- •6 Краткие сведения об отладчике программ debug
- •6.1 Основные команды отладчика debug
5.5 Программирование работы с принтерами
При работе с печатающими устройствами могут быть использованы прерывания: 14Н и 17Н BIOS и 21Н (АН=4 и 5) DOS. Следует различать программирование для печатающих устройств параллельного типа (информация передается на принтер побайтно по 8-битной шине) и печатающих устройств последовательного типа (информация передается по одному проводу последовательно по одному биту), подсоединяемых к любому последовательному порту микропроцессора.
5.6 Печатающие устройства параллельного типа
Основные прерывания для печатающего устройства параллельного типа:
17Н BIOS (номер принтера предварительно указывается в регистре DX):
послать один символ в устройство печати: АН=0. ASCII-код символа предварительно должен быть помещен в регистр AL. В регистре АН после завершения вывода символа возвращается признак успешности результата;
инициировать принтер (посылка в порт служебных кодов): АН=1;
• получить состояние принтера (в регистре АН): АН=2. - 21H DOS:
• вывести на печать один символ: АН=5. ASCII-код символа предварительно записывается в регистр DL. Фрагмент программы печати символа «С» (ASCII- код символа «С»=43Н):
mov АН. 5
mov DL. 43H
int 21H
Если необходимо отпечатать строку, то следует, используя это же прерывание, организовать вывод символов в цикле, каждый раз помещая в регистр DL ASCII-код очередного символа, а в конце строки и код CR возврата каретки (ASCII-код = 13) и/или LF — перевода строки (ASCII-код = 10). Фрагмент программы печати строки: «Я печатаю»:
text db 'Я печатаю'. 13
… .
mov SI, 0 ; обнуляем смещение адреса символа в строке
mov АН, 5
print: mov DL. text[SI]
; помещаем в DL очередной символ из строки text
int 21H
inc SI ; увеличиваем смещение адреса символа в строке на 1
cmp DL. 13
; сравниваем очередной символ с кодом возврата каретки
jne print
Печатающее устройство имеет свой буфер, где накапливает печатаемые символы, пока не поступит символ CR или LF (поэтому возможна печать строки и в обратном направлении).
• Вывести на печать текстовый файл: АН=40Н. Используются функции расширенного управления файлами MS-DOS по файловому указателю. Пример фрагмента программы для вывода на печать текстового файла Text, содержащего 50 байт:
text db 50 dup(‘ ‘)
… .
mov АН. 40Н
mov BX, 4 ;указание устройства вывода
mov CX. 50 ;указание числа выводимых байтов
mov DX. offset text ;указание начального адреса
;поля памяти, содержащего текст
int 21H
5.7 Печатающее устройство последовательного типа
Основные прерывания для печатающего устройства последовательного типа:
14Н BIOS (номер последовательного порта записывается в регистр DX):
инициализация параметров последовательного порта: АН=0;
послать в порт один символ (если к порту подсоединен принтер, то и пе чать): АН=1 и др.
21H DOS (номер последовательного порта записывается в регистр DX):
вывести на печать один символ: АН=4. ASCII-код символа предварительно записывается в регистр DL;
далее аналогично прерыванию 21Н DOS, АН = 5 для принтера параллельного типа и др.
