русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Блоки повторений


Дата добавления: 2015-06-12; просмотров: 1306; Нарушение авторских прав


Блок повторения представляет собой специфическую форму макроопределения с несколько ограниченными возможностями макроязыка. По сути блок повторения представляет собой макрообъект, объединяющий в себе макроопределение и макровызов. Макроопределения как шаблона, по которому производится генерация макрорасширения, здесь не требуется, в результате чего сужаются возможности варьирования генерируемым текстом. С другой стороны, использование блоков повторения по сравнению с макроопределениями является синтаксически и логически более простой задачей. Обработка блока повторения заключается в многократном дублировании тела блока с незначительными изменениями текста.

В языке Ассемблера имеются блоки повторения 3-х типов:

u REPT-блок;

u IRP-блок;

u IRPC-блок.

REPT-блок имеет следующий формат:

REPT выражение

...

предложения

...

ENDM

Блок предложений, заключенный между ключевыми словами REPT и ENDM, повторяется столько раз, каково текущее значение указанного выражения. Выражение должно иметь значение в виде 16-битового числа без знака и не может содержать внешних или неопределенных символов. Тело блока может включать в себя любые предложения языка.

IRP-блок имеет следующий формат:

IPR формальный-параметр,<параметр,...>

...

предложения

...

ENDM

Блок предложений, стоящий между ключевыми словами IRP и ENDM, будет повторен для каждого параметра в списке, заключенном в скобках <>.

Формальный-параметр относится только к данному блоку и последовательно принимает значения из списка. В качестве параметров в списке могут быть заданы определенные символы, строки, числа или символьные константы. Может быть задано любое число параметров, которые, если их несколько, должны разделяться запятыми. Тело блока может включать в себя любые предложения языка Ассемблера.Формальный-параметр в теле блока может быть использован произвольное число раз.



Когда MASM распознает директиву IRP, он создает копию предложений блока для каждого параметра в списке. При копировании предложений осуществляется замена текущим параметром всех вхождений формального параметра блока. Если в списке будет обнаружен пустой параметр (<>), формальный параметр получит значение пустой строки. Если список параметров пуст, блок игнорируется.

Пример:

alloc MACRO x

IRP y,<x>

DB y

ENDM

ENDM

В результате обработки макровызова

alloc <0,1,2,3>

будет сгенерировано макрорасширение

IRP y,<0,1,2,3>

DB y

ENDM

IRPC-блок имеет следующий формат:

IRPC формальный-параметр,строка

...

предложения

...

ENDM

Блок предложений, заключенный между ключевыми словами IRPC и ENDM, будет повторен для каждого символа указанной строки. При этом каждое вхождение формального параметра в блоке замещается текущим символом строки.

Строка представляет собой любую комбинацию букв, цифр и других символов. Если строка содержит пробелы, запятые или другие ограничители, она должна быть заключена в одинарные скобки <>.

Тело блока может включать в себя любые предложения языка Ассемблера. Формальный параметр в теле блока может быть использован произвольное число раз.

Когда MASM распознает директиву IRPC, он создает копию предложений блока для каждого символа в строке. При копировании предложений осуществляется замена текущим символом строки всех вхождений формального параметра блока.

 

 



<== предыдущая лекция | следующая лекция ==>
TITLE Macro File | Макрооператоры


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.047 сек.