Page 1 of 1

Как писать в строчку на FASM.

Posted: Thu Mar 03, 2016 1:44 pm
by Yason
Решил оформить сообщение из оффтопа, в отдельную тему, может кому пригодится. Можете предлогать свои варианты макросов, если кому интересно. :D

Простейший макрос, который позволяет писать в строчку на FASM, и принимает любое кол-во параметров.

Code: Select all

macro asm_inline [args*]
{
forward
args
}

Code: Select all

; копирует массив байт из buffer1, в buffer2.
asm_inline <mov esi, buffer1>, <mov edi, buffer2>, <mov ecx, 22>, <cld>, <rep movsb>
После припроцессинга, макрос развернётся в следующую конструкцию...

Code: Select all

; копирует массив байт из buffer1, в buffer2.
mov esi, buffer1
mov edi, buffer2
mov ecx, 22
cld
rep movsb

Re: Как писать в строчку на FASM.

Posted: Wed Mar 16, 2016 9:57 pm
by Insolor
Когда-то тоже делал аналогичный макрос (см. комментарий в самом низу статьи). На практике не применял.

Re: Как писать в строчку на FASM.

Posted: Thu Mar 17, 2016 11:53 am
by Yason
Insolor wrote:Когда-то тоже делал аналогичный макрос (см. комментарий в самом низу статьи).
Да, но я тоже, сам писал. В составе FASM'а, есть очень удобный инструмент "prepsrc.asm". Показывает, во что преобразуются припроцессорные конструкции. :)
А на wasm.ru, уже давно не был. Оформление ужасное сделали - старое было лучше. :shock:
Кстати, эту статью, я впервые, увидел в сборнике "Assembler.ru", помнится, тогда, masm мне сразу не понравился. В нём, синтаксис макро-языка, да и самого ассемблера, просто ужасающий. А компиляция с ключами, вообще убивает. :(
Insolor wrote:На практике не применял.
Я тоже. Хотя, может когда-нибудь... :)