Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Директива ЕХIТМ





Рассмотрим еще одну директиву макроязыка:

ЕХIТМ

У этой директивы нет операндов. Ее можно использовать только внутри макрооп­ределений и блоков повторения, т. е. внутри конструкций макроязыка, оканчиваю­щихся директивой ЕNDМ. Встретив директиву ЕХIТМ, макрогенератор завершает обработку ближайшего объемлющего макроопределения или блока повторения.

Например, при макроопределении

A MACRO K

RЕРТ К

DB 0

ЕХIТМ

ENDM

DW?

ЕNDМ

Макрокоманда А 5 будет заменена на следующий текст:

DW 0

DW?

Здесь макрогенератор, создавая первую копию тела блока повторения, перенесет предложение DВ 0 в макрорасширение, а затем, встретив ЕХIТМ, полностью завершит обработку этого блока, но не покинет тело макроса - он "перескочит" за ближайшую директиву ЕNDM, т. е. на предложение DW?. Более содержательные примеры на директиву ЕХITМ будут приведены позже (они требуют знания условных директив). Пока лишь отметим, что эта директива ис­пользуется тогда, когда при выполнении некоторого условия надо досрочно (не доходя до ЕNDМ) прекратить макроподстановку или "раскрутку" блока повторения.

 

Переопределение и отмена макросов

В отличие от других объектов программы на ЯА, макросы можно пере­определить или уничтожить. Если в тексте программы описать макрос с именем, которым ранее был обозначен другой макрос, то с этого момента прежний макрос считается уничтоженным, а новый макрос - действующим. Например:

A MACRO X

INC X

ENDM

A CX à INC CX

A MACRO Y,Z

CMP Y, 0

JE Z

ENDM

A BH, EQ à CMP BH,0

JE EQ

Макрос можно и просто уничтожить, не определяя новый макрос с тем же именем, для чего надо воспользоваться следующей директивой:

РURGE <имя макроса> {,<имя макроса>}

После этой директивы все макросы, имена которых в ней перечислены, считаются несуществующими. Например, после директивы

PURGE A, ININT

к макросам А и ININТ уже нельзя обращаться.

 







Date: 2015-10-21; view: 332; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.005 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию