Мониторинг обменных курсов валют
18c0693f

Простейшие макросы


Простейшие макросы используют директиву EQU для определения макроса. Директива используется для задания обозначений операторов или их частей. Такие макросы называются текстовыми.

Пример. Пусть необходимо в программе использовать много диагностических сообщений, которые содержат общие части, например:

msg1    db        ‘Ошибка в записи идентификатора’, 13, 10, 0

msg2    db        ‘Ошибка в записи числа’, 13, 10, 0

···

msgN   db        ‘Ошибка в записи выражения’, 13, 10, 0

Для упрощения записи обозначим общие части сообщений m1(Ошибка в записи)  и m2(13, 10, 0). Для этого используются операторы:

m1     EQU  < Ошибка в записи >

m2     EQU  <13, 10, 0>

Угловые скобки в записи означают, что данная запись рассматривается как единое целое, а не состоит из нескольких элементов.

Тогда для задания msg1, msg2,... msgN требуются операторы:

msg1    db        m1, ‘ идентификатора’, m2

msg2    db        m1, ‘ числа’, m2

···

msgN   db        m1, ‘ выражения’, m2

Для проверки правильности составленных макросов составим программу для формирования строк:

IDEAL

p586

model flat

extrn ExitProcess:proc

dataseg

m1      EQU     < 'Ошибка в записи' >

m2      EQU     <13, 10, 0>

msg1    db      m1, ' идентификатора', m2

msg2    db      m1, ' числа', m2

msg3    db      m1, ' выражения', m2

codeseg

begin:

call      ExitProcess

end     begin

Для просмотра сформированных строк войдите в режим DUMP и, используя CTRL/G, задайте просмотр области памяти, начиная с msg1. Вы увидите сформированные строки.

 






Самый выгодный курс обмена валюты