Программирование на Ассемблере


Использование фактических параметров со специальными знаками


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

IDEAL

p586

model   flat

MACRO ERROR     msg, number

m&number        db      '&msg',13,10,'$'

endm

dataseg

error   <Ошибка в записи идентификатора>, 1

error   <Ошибка в записи числа>, 2

error   <Ошибка в записи числа, длина !> 6>, 3

END

Откомпилируйте этот пример с формированием листинга и проанализируйте созданный листинг.



Если среди символов фактического параметра есть символы <>, перед ними ставится знак !, например для предыдущего макроса необходимо сформировать

error    <Ошибка в записи идентификатора, длина !>6>, 3

Если знак ! будет пропущен, первый знак > будет рассмотрен как конец параметра.

Если вместо фактического параметра используется выражение, которое должно быть вычислено до подстановки, перед параметром используется знак % например:

MACRO          ARRAY            name, type, count

name   d&type (count) dup(?)

endm

Для использования макроса для выделения памяти под матрицу с данными типа двойное слово размером 25*80 можно записать:

IDEAL

P586

model   flat

macro   array   name, type, count

name    d&type  (count)    dup (?)

endm

dataseg

      array     matr, d, %25*80

end



Содержание раздела