«Макросы и директивы компилятора FASM»

224

Описание

отсутствует



1 страница из 8
читать на одной стр.
Настроики
A

Фон текста:

  • Текст
  • Текст
  • Текст
  • Текст
  • Аа

    Roboto

  • Аа

    Garamond

  • Аа

    Fira Sans

  • Аа

    Times

стр.
Макросы и директивы компилятора FASM (fb2) - Макросы и директивы компилятора FASM 20K скачать: (fb2) - (epub) - (mobi) - Автор НеизвестенМАКРОСЫ И ДИРЕКТИВЫ КОМПИЛЯТОРА FASM

С помощью макрокоманд Вы можете создавать ваши собственные комплексные инструкции, сокращенно называемые макросами, используя которые можно существенно упростить процесс программирования. В самой простой форме это похоже на определение переменной.

Например, определение следующего макроса позволяет сократить выражение test al,0xFF инструкцией tst:

macro tst {test al, 0xFF}

После ключевого слова macro идет имя макроса и его содержимое внутри фигурных скобок {}. Вы можете использовать инструкцию tst в любом месте после её определения и она будет скомпилирована как test al,0xFF. Определение константы tst той величины дало бы тот же эффект, но разница в том, что имя макроса считается мнемоникой инструкции. То есть, макросы заменяются соответствующим кодом раньше, чем символические константы будут заменены их величинами. Так, если Вы определяете макрос и символическую константу с одним именем, и используете это название как мнемонику инструкции, она будет заменена содержанием макроса, но и будет заменена величиной, если символическая константа используется где-нибудь в операндах.

Макросы могут состоять из нескольких строк, так как начало и конец макроса не обязаны быть на той же самой строке что и директива macro. Например:

macro stos0

 {

      xor al,al

      stosb

 }

При использовании макрос stos0 будет заменен этими двумя инструкциями.

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

macro align value {rb (value-1)-($+value-1) mod value}

Когда инструкция align 4 будут найдена после определения этого макроса, она будет заменена его содержанием, и value станет равно 4, так что в результате мы получим rb (4-1) - ($+4-1) mod 4.

Комментарии к книге «Макросы и директивы компилятора FASM», Автор Неизвестен

Всего 0 комментариев

Комментариев к этой книге пока нет, будьте первым!

РЕКОМЕНДУЕМ К ПРОЧТЕНИЮ

Популярные и начинающие авторы, крупнейшие и нишевые издательства