
- •3.Регистры мп i8086.
- •7.Адресация, непоср. Операнды.
- •8. Прямая адресация.
- •9. Побічна адресация.
- •10. Косвенная адресация со смещением.
- •11. Базово-індексна адресация.
- •13. Адресация символьних данних.
- •14.Адресация портов ввода/вывода
- •15. Работа со стеком.
- •16.Вызов процедур на ассемблере.
- •17.Прерывания работы проц. Вызов программных прерываний.
- •30. Прерывания bios и dos.
- •18 Мова Асемблера мікропроцесора 80х86. Фрмат запису програм Асм
- •19 Лексеми Асемблера(імена, константи, символьні дані)
- •21.Команды пересылания данных ( mov, xchg).
- •22Арифм. Команды(add, sub).
- •23.Арифм. Команды( mul, imul, div, idiv).
- •24.Безусловный переход.
- •25.Команды сравнения, реализация условного перехода.
- •26Команды управления циклами.
- •27Процедуры, передача параметров через регистры и стек.
- •28Символьные команды, преффиксы повторения.
- •29Макросы, макрокоманды, условное ассемблирование.
- •39 Особливості процесорів з архітектурою vliw
- •4. Режими роботи мікропроцесора і80386
- •Реальный режим
- •Защищенный режим
- •5. Режими роботи мікропроцесора х86-64
- •31Робота мiкропроцесора pentium у захищеному режимi
- •32Регiстри мiкропроцесора pentium у захищеному режимi
- •33Адресацiя мiкропроцесора pentium у захищеному режимi. Flat Model.
- •40 Классификация Флинна
- •41. Гарвардська та фон Нейманська архітектура. Классическая гарвардская архитектура
- •Отличие от архитектуры фон Неймана
- •Гибридные модификации с архитектурой фон Неймана
29Макросы, макрокоманды, условное ассемблирование.
Макрокоманда - это программный инструмент, который позволяет вам создавать собственные операции ассемблера. На самом деле макроопределения относятся к механизму препроцессора. Макропроцессор позволяет определять новые коды операций для процессора. В этом определении вы, в частности, сообщаете ассемблеру текст выполняемой операции. Когда ассемблер встречает этот вновь определенный код операции, он обращается к сохраненному определению макрокоманды и помещает в транслируемый участок программы текст из этого определения. Например, в программе могут быть определены в качестве макрокоманд часто используемые последовательности команд. Каждый раз, когда эти команды должны быть вставлены в текст программы, программист может вместо этого воспользоваться макрокомандой.\\В использовании макро-команды можно выделить два шага. На первом шаге макрокоманда определяется в программе. Программист присваивает ей имя и определение. Определение состоит из из операций ассемблера и команд, которые будут генерироваться каждый раз при появлении имени макрокоманды. Второй шаг - применение макрокоманды. Это происходит когда ассемблер встречает ее имя в качестве кода операции. Ассемблер заменяет это имя указанными в определении командами.
Программа определяет макро-команду с помощью ключевого слова MACRO. Оператор MACRO является кодом псевдооперации. Эта конкретная псевдооперация сообщает ассемблеру, что начинается определение макрокоманды. В поле имени операции указано это имя, которое программа приписывает определяемой макрокоманде. Ключевое слово ENDM указывает ассемблеру на конец определения. Текст между операторами MSCRO и ENDM называется телом макрокоманды. Важно заметить, что во время определения макрокоманды код машинного языка еще не генерируется. Это можно утверждать, потому что колонки адреса и данных пусты.
АССЕМБЛИРОВАНИЕ ПО УСЛОВИЮ
До сих пор макрокоманды не отличались от подпрограмм с точки зрения как их функционирования, так и использования параметров. Далее потребуется возмоность ассемблирования в зависимости от условия. Также как ход выполнения подпрограммы может меняться в зависимости от некоторых условий в момент выполнения, так и у макрокоманды должна быть возможность изменять в момент транслирования генерацию соответствующего машинного кода в зависимости от удовлетворения условий. Макроассемблер фирмы IBM допускает условное ассемблирование. На самом деле, условное ассемблирование не обязательно входит только в макрокоманду. Программа может использовать условное транслирование в любом месте ассемблерного текста. Однако наиболее часто оно встречается в макрокомандах. В IBM PC условное транслирование поддерживается только Макроассемблером MASM. Так же, как и выполнение макрокоманд, условное ассемблирование происходит во время трансляции, а не выполнения программы. Условное транслирование позволяет программисту "запрограммировать" ассемблер на транслирование различных последовательостей кодов.