Цитата(vanner @ Apr 1 2008, 10:06)

Во первых разберись что такое макрос - это совсем не подпрограмма.
Я нигде не говорил, что макрос - это подпрограмма. С чего Вы это взяли?
Цитата(vanner @ Apr 1 2008, 10:06)

Использовать метки в макросах нельзя.
Почему? Где это можно прочитать?
Возможно я не правильно понимаю назначение директивы LOCAL. Разве в следующем коде:
Код
NAME_OF_MACRO MACRO1
LOCAL _finally
;какие-либо действия
goto _finally
;какие-либо действия
_finally:
;какие-либо действия
ENDM
_finally - не будет являться именно локальной меткой макроса NAME_OF_MACRO?
Цитата(vanner @ Apr 1 2008, 10:06)

Если уж сильно нужен макрос и переходы в нем, то можешь использовать конструкции типа goto $+n.
Я так понимаю goto $+n - это переход на n строк вперед. На мой взгляд, такой подход крайне неудобен, при n >= 2. Сопровождение и отладка кода, где используются конструкции вида goto $+10, опять же на мой взгляд, смерти подобна.
А вообще вопрос касался подпрограмм, а не макросов.