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


         

12.2.5 Макрорасширение (м/р)


Для получения расширения необходимо в м/о подставить фактические команды макрорасширения. Фактические параметры м/к должны быть записаны так, чтобы получились синтаксически правильные команды. Макрорасширение формируется компилятором и подставляется в программу вместо м/к. В листинге программы можно увидеть команды макрорасширения.

Пример. Составить программу для обмена местами данных длиной 32 бита с помощью макросов.

 

IDEAL

p586

model           flat

extrn ExitProcess:proc

dataseg

first           dd      1

second             dd      2

codeseg

begin:

MACRO   SWAP    a, b

push    eax ebx

mov     eax, a

mov     ebx, b

mov     a, ebx

mov     b, eax

pop     ebx eax

endm

SWAP    [first], [second]

call      ExitProcess

end    begin

Откомпилируйте программу в режиме формирования листинга (ключ l). По листингу проанализируйте число сформированных команд для функции и макросов. Сделайте выводы по использованию макросов и функций.




Содержание  Назад  Вперед