На этой странице вы найдете информацию о программировании, данная информация была взята с разных источников и автором. Поэтому мы не претендуем на авторство этого материала, а лишь предоставляем возможность ознакамливаться с ним.
Обработка этих директив макроассемблером заключается в вычислении логического_выражения и включении в объектный модуль фрагмент_программы_1 или… Директивы IF и IFE очень удобно использовать при необходимости изменения… К примеру, составим макрос для определения в программе области памяти длиной не более 50 и не менее 10 байт (листинг… ...
Введение в язык ассемблера этих директив значительно повышает его мощь.
Всего имеется 10 типов условных директив компиляции. Их логично попарно… Условные директивы компиляции имеют общий синтаксис и применяются в составе следующей синтаксической конструкции:
… ...
Существует два типа этих директив:
директивы компиляции по условию позволяют проанализировать определенные условия в ходе генерации … С этими директивами применяются директивы управления процессом генерации… Директива EXITM не имеет операндов, и ее действие заключается в том, что она немедленно прекращает процесс генерации… ...
Действие данной директивы подобно IRP, но отличается тем, что она на каждой очередной итерации заменяет формальный_аргумент очередным символом из… Понятно, что количество повторений последовательность_строк будет определяться… К примеру:
irpc rg, push rg&x endm ...
Действие данной директивы заключается в том, что она повторяет последовательность_строк N раз, то есть столько раз, сколько строк_символов заключено… Повторение последовательности_строк сопровождается заменой в ней… Так, при первой генерации последовательности_строк формальный_аргумент в них заменяется на строка_символов_1.
...
Эти директивы имеют следующий синтаксис:
WHILE константное_выражениепоследовательность_строкENDM
REPT константное_выражениепоследовательность строкENDM Обратите внимание, что последовательность повторяемых строк в обеих директивах ограничена директивой ENDM.
...
С помощью макрокоманд в текст программы можно вставлять последовательности строк (которые логически могут быть данными или командами) и даже более… Представим ситуацию, когда необходимо выполнить некоторые повторяющиеся… Структурно в ней явно прослеживаются повторяющиеся участки кода. Их можно оформить в виде макрокоманд и использовать… ...
Последнее означает, что эти команды внешне имеют формат обычных команд ассемблера, но после трансляции они приводятся к одной или нескольким… Введение этих команд в язык TASM повышает наглядность работы с записями,… Эти команды позволяют скрыть от программиста действия по выделению и установке отдельных полей записи (мы их обсуждали… ...
Прежде всего для понимания проблемы нужно усвоить несколько моментов:
Каждому имени элемента записи ассемблер присваивает числовое значение,…
width имя_экземпляра_записиили width имя_типа_записи ;значением…
mov al,width i2... mov ax,width iotest Ассемблер содержит оператор mask, который позволяет… ...
Рис. 7. Синтаксис описания экземпляра записи
Анализируя эту синтаксическую диаграмму, можно сделать вывод, что инициализация элементов записи осуществляется… ...
В языке должны быть средства доступа к этим переменным внутри конкретного экземпляра структуры. Для того чтобы сослаться в команде на поле некоторой… Здесь:
адресное_выражение — идентификатор переменной некоторого… Таким образом оператор "." (точка) вычисляет выражение
(адресное_выражение) + (имя_поля_структуры) … ...
Здесь:
имя переменной — идентификатор переменной данного структурного типа. Задание имени переменной необязательно. Если его не указать,… Для примера определим несколько переменных с типом описанной выше структуры.
… ...
Здесь <описание полей> представляет собой последовательность директив описания данных db, dw, dd, dq и dt.
Их операнды определяют размер полей и, при необходимости, начальные значения.… Как мы уже отметили при описании шаблона, память не выделяется, так как это всего лишь информация для транслятора.
...
Само по себе такое расположение ничего не говорит о назначении и порядке использования этих элементов. И только лишь программист с помощью… Эти же соображения можно распространить и на индексы элементов массива.… Для того чтобы локализовать определенный элемент массива, к его имени нужно добавить индекс. Так как мы моделируем… ...