Tomasz Grysztar - Flat Assembler 1.64. Мануал программера

Здесь есть возможность читать онлайн «Tomasz Grysztar - Flat Assembler 1.64. Мануал программера» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Базы данных, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Flat Assembler 1.64. Мануал программера: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Flat Assembler 1.64. Мануал программера»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Flat Assembler 1.64. Мануал программера — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Flat Assembler 1.64. Мануал программера», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Определение макроинструкции может сотоять из нескольких строк, потому что знаки « {» и « }» не обязательно должны находиться на одной строке директивой « 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».

Если в определении макроинструкции встречается её же имя, то используется предыдущее значение этого имени. Таким образом могут быть сделаны полезные переопределения макросинструкций, например:

macro mov op1,op2

{

if op1 in

& op2 in

push op2

pop op1

else

mov op1,op2

end if

}

Эта макроинструкция расширяет синтаксис инструкции « mov», позволяя обоим операндам быть сегментными регистрами. Например, « mov ds,es» будет ассемблировано как « push es» и « pop ds». Во всех других случаях будет использована стандартная инструкция « mov». Синтаксис этого « mov» может быть расширен далее определением следующей макроинструкции с таким именем, который будет использовать предыдущий:

macro mov op1,op2,op3

{

if op3 eq

mov op1,op2

else

mov op1,op2

mov op2,op3

end if

}

Это позволяет инструкции « mov» иметь три операнда, но она так же все ещё может иметь два операнда, так как если макроинструкции задается меньше аргументов, чем ему требуется, оставшиеся заполняются пустыми значениями. Если заданы три операнда, то макроинструкция превратится в две ранее определенных, то есть « mov es,ds,dx» будет ассемблировано как « push ds», « pop es» и « mov ds,dx».

Если требуется создать макроинструкцию с аргументом, который содержит запятые, этот аргумент следует заключить между « <» и « >». Если он содержит больше одного знака « <», то для окончания его описания должно быть использовано такое же количество « >».

« purge» позволяет отменить последнее определение указанной макроинструкции. За директивой должно следовать одно или больше имен макроинструкций, разделенных запятыми. Если указанная макроинструкция не определена, это не вызовет ошибку. Например, после расширения синтаксиса « mov» вышеуказанными макроинструкциями вы можете отключить синтаксис с тремя операндами, используя директиву « purge mov». Следующее « purge mov» отключит синтаксис для сегментных регистров, а дальнейшее применение этой директивы не возымеет эффекта.

Если после директивы « macro» вы заключаете некоторую группу аргументов в квадратные скобки, это позволит при использовании макроинструкции задать данной группе аргументов больше значений. Любой следующий аргумент данный после последнего аргумента данной группы начнет новую группу и станет её первым членом. Поэтому после закрытия квадратных скобок не должно быть имен аргументов. Содержание макроинструкции будет обрабатываться для каждой такой группы аргументов отдельно. Простейший пример — это заключение одного имени аргумента в квадратные скобки:

macro stoschar [char]

{

mov al,char

stosb

}

Эта макроинструкция допускает неограниченное число аргументов, и каждый будет обработан этими двумя инструкциями отдельно. Например, « stoschar 1,2,3» будет ассемблирован как следующие инструкции:

mov al,1

stosb

mov al,2

stosb

mov al,3

stosb

Существуют некоторые специальные директивы, возможные только внутри определений макроинструкций. Директива « local» задает локальные имена, которые будут заменены уникальными значениями каждый раз, когда используется макроинструкция. За ней должны следовать имена, разделенные запятыми. Эта директива обычно требуется для внутренних констант или меток макроинструкции. Например:

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Flat Assembler 1.64. Мануал программера»

Представляем Вашему вниманию похожие книги на «Flat Assembler 1.64. Мануал программера» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Flat Assembler 1.64. Мануал программера»

Обсуждение, отзывы о книге «Flat Assembler 1.64. Мануал программера» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x