- •Программное управление — основа автоматизации вычислительного процесса
- •2 Состав машинных команд
- •3 Режимы работы компьютеров
- •3.1 Однопрограммные и многопрограммные режимы
- •I.Система прерываний программ в пк
- •3.2 Адресация регистров и ячеек памяти в пк
- •3.3 Относительная адресация
- •II.Стековая адресация
- •4 Основные компоненты языка ассемблер
- •4.1Алфавит языка
- •4.2 Константы (числа и строки)
- •3.4 Элементы программирования на языке ассемблер
- •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
3.4 Элементы программирования на языке ассемблер
Программы составляются, как правило, на машинно-независимом алгоритмическом языке высокого уровня (Basic, Pascal, FORTRAN, С, PROLOG и т. д.). Представление об основах программирования на машинно-ориентированных языках полезно для:
лучшего понимания архитектуры ПК и более грамотного использования компьютеров; для разработки более рациональных структур алгоритмов и программ решения прикладных задач;
возможности просмотра и корректировки исполняемых программ с расширениями .ехе и .com, компилированных с любых языков высокого уровня, в случае утраты исходных программ (вызвав указанные программы в отладчик программ DEBUG и декомпилировав их, можно получить их отображение на языке ассемблера);
составления программ решения наиболее ответственных задач (программа, составленная на машинно-ориентированном языке, обычно эффективнее (короче и быстрее процентов на 30-60) программ, полученных в результате трансляции с языков высокого уровня) и для реализации процедур, включаемых в основную программу в виде отдельных фрагментов в том случае, если они не могут быть реализованы ни на используемом языке высокого уровня, ни с использованием служебных процедур операционной системы.
4 Основные компоненты языка ассемблер
4.1Алфавит языка
Алфавит языка составляют символы ASCII:
буквы от А до Z (или от а до z, строчные и прописные буквы в ассемблере не различаются);
цифры от 0 до 9;
специальные символы : @, $, ?, ., _, -, +, *, ', ", ;, : и т. д.
Из букв, цифр и символов: @, $, ?, ., _ формируются:
простые сообщения: имена (идентификаторы) процедур (подпрограмм), переменных, директив, команд (метки), значения констант и переменных;
составные сообщения: команды (операторы);
директивы (псевдооператоры), модификаторы (операции) и т. д.
Имена меток, переменных, идентификаторов могут быть длиной до 31 символа и начинаться должны обязательно не с цифры.
4.2 Константы (числа и строки)
Числа — только целые
Различают:
двоичные числа; заканчиваются буквой В;
десятичные числа; без специального окончания или заканчиваются буквой D;
шестнадцатеричные числа; заканчиваются буквой Н.
Для обозначения цифр 10, 11, 12, 13,14, 15 в шестнадцатеричной системе счисления используются соответственно буквы А, В, С, D, E, F; но начинаться шестнадцатеричные числа должны обязательно с цифры, например: выражение F19H -не число, а идентификатор, правильно число надо записать так: OF19H.
Запись отрицательных чисел:
десятичные числа записываются обычным образом, просто со знаком: -32, -32D;
двоичные числа записываются только в дополнительном модифицированном коде: -32D -> 11.100000В, -19D -> 11.01101В;
шестнадцатеричные числа записываются только в дополнительном коде: -32D записывается как l.EOH, -119D записывается как 1.89Н.
Строки (литералы)
Строки символов: включают любые буквы, цифры и символы, но заключаются в кавычки: "ПЭВМ IBM PC с микропроцессором 80386".
Команды (операторы)
Формат команды:
[Метка [ : ] ] КОП [Операнд] [Операнд] [Комментарий].
Между элементами команды вставлены пробелы. Здесь и далее элементы, заключенные в квадратные скобки, необязательны.
КОП (Код Оператора) — мнемокод команды (состоит из 2-6 букв). Может быть до 256 различных кодов (в ассемблере IBM PC их число изменяется в зависимости от типа МП.
Например: 133 в МП 8088, 240 в МП 80386).
Операнд — явно заданный адрес (прямой или косвенный); имя метки, переменной; само значение переменной; ассоциативный признак и т. п. Количество необходимых в команде операндов ассемблер узнает по КОП. В большинстве двухадресных команд присутствуют операнды приемник (dst — destination) и источник (src — source); источник не изменяет своего содержания, в приемнике 1-е число, участвующее в операции, заменяется результатом.
Метка — имя команды ассемблера для ссылки (обращения) к этой команде (до 31 символа).
Двоеточие, стоящее после метки, означает, что метка всегда находится в текущем сегменте памяти.
Комментарий — любой текст, поясняющий человеку программу (не воспринимается ассемблером, но выводится в листинге).
