
- •Программное управление — основа автоматизации вычислительного процесса
- •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
4.3 Директивы (псевдооператоры)
Директивы в отличие от команд выполняются только в процессе ассемблирования (трансляции) программы, а не в процессе решения задачи на компьютере. То есть команды — это инструкции машине, а директивы — это инструкции ассемблеру (транслятору).
Формат директивы:
[Идентификатор] КПОП [Операнд] [.Операнд]... [Комментарий]
Как и в случае команд, поле директивы может начинаться в любом месте строки программы при условии, что оно отделено от предыдущего поля хотя бы одним пробелом. Идентификатор — имя директивы (для обращения к ней). КПОП (Код ПсевдоОПератора) — мнемокод директивы (состоит из 2-7 букв).
Операнды — их в директиве может быть много; это уже не только адреса, но и различные процедуры. В операндах могут быть записаны простые выражения, использующие модификаторы (операции).
4.4 Модификаторы
В операторах и псевдооператорах языка ассемблер иногда используются модификаторы, которые определяют ту или иную операцию, учитываемую при трансляции программы. Существует 5 видов модификаторов: арифметические, логические, отношений, возвращения значений и присваивания атрибутов. Наиболее часто используются модификаторы (mdf):
Арифметические модификаторы: + — сложить, — вычесть, * — умножить, / - разделить, mod — остаток от деления и т. д. Формат: opr mdf орг.
Логические модификаторы: and — «и», or — «или», not — «не» и хог - исключающее «или». Формат: opr mdf орг.
Модификаторы отношения: eq — совпадения, nq — несовпадения, lt — меньше, gt — больше, lе — меньше или равно, ge — больше или равно. Формат: opr mdf орг.
Модификаторы, возвращающие значения:
$ — возвращает значение смещения адреса текущего оператора;
seg — возвращает адрес сегмента адреса метки или переменной;
offset — возвращает смещение адреса метки или переменной;
length — возвращает длину операнда в единицах определения (байтах или словах);
type — возвращает атрибут типа переменной (1, если byte; 2 — word, 3 — dword) или метки (1 — near, 3 — far);
• size — возвращает произведение length*type. Формат: mdf opr.
- Модификаторы присваивания атрибута:
ptr — изменяет атрибут типа (byte, word или dword) операнда или атрибут дистанции (near или far) адресного операнда. Формат: тип ptr opr. (здесь: тип - новый атрибут, opr — идентификатор операнда, чей атрибут должен быть изменен);
ds:, es:, cs:, ss: — изменяет атрибут сегмента адреса. Формат: rsegm : адрес. (адрес может быть задан именем сегмента, переменной, меткой или адресным выражением);
short — дополняет атрибут near метки оператора перехода, указывает, что переход осуществляется на расстояние не более ±128 байт от текущей команды. Формат: short метка;
high—возвращает старший байт 16-битового значения орг. Формат: high opr;
• low — возвращает младший байт 16-битового значения орг. Формат: low opr. В программах используются:
- атрибуты дистанции:
near — близкий, в пределах одного сегмента;
far — далекий, за пределами одного сегмента;
- атрибуты типа данных:
byte — длиной 1 байт;
word — длиной 2 байт;
dword — длиной 4 байт.