Что делает макрос в MASM32? - PullRequest
0 голосов
/ 13 марта 2011
  szText MACRO Name, Text:VARARG
    LOCAL lbl
      jmp lbl
        Name db Text,0
      lbl:
    ENDM

Кто-нибудь знает, что делает этот макрос?

1 Ответ

1 голос
/ 13 марта 2011

Похоже, что он создает строку с нулевым символом в конце (отсюда sz).Символ для строки - это то, что вы передаете в качестве параметра Name в макрос, и оно содержит все, что вы передаете в качестве параметра Text, плюс завершающий 0.

Он выводит инструкцию перехода для перехода через строку,сопровождаемый байтами самой строки.Метка для перехода объявлена ​​как локальная для макроса, поэтому она не загрязняет глобальное пространство имен.

Прошло много времени с тех пор, как я создал язык ассемблера x86, но я полагаю, что этостроковые данные прямо в сегменте кода, а не помещать их в сегмент данных, что кажется немного странным.

...