если кто не помнит я поясню указываешь в командной строке /D Строка ifdef Строка mov eax,0 else xor eax,eax endif Как сделать анологичное в Fasm
В макросе или при исполнении кода? для макроса if str='123' mov eax,0 else xor eax,eax end if для кода смотри IF.INC
Может кто не понял(а может и я) я хочу как нибудь указать что необходимо оптимизировать по размеру, или скорости пример с ТАСМ tasm test.asm /D_Size_ macro o_mov a,b ifdef _Size_ if b=0 then xor ebx,ebx endif else mov a,b endif endm Ты ошибки но я так чтоб смысл был понят. Asterix: За файлик спасибо.
Evg666 В командной строке fasm'у это указать невозможно, но можно задать в самом исходнике некую константу, в зависимости от ее значения будет ассемблирован нужный код.
> AFAIK Privalov никогда на это не пойдёт (IMHO правильно) Вообще, FASM имеет отличную (от других ассемблеров) идеологию. На первый взгляд некоторые вещи могут показаться странными, но на практике оказывается что они рабтают лучше . Вот ещё один из вариантов решения, без условной компиляции: Код (Text): macro SIZE { purge zero macro zero arg _% xor arg,arg %_ } macro SPEED { purge zero macro zero arg _% mov arg,0 %_ } _% fix { %_ fix } ; используем SPEED zero eax ....... SIZE zero ebx
Можно параметры задавать в отдельном include - это будет почти эквивалентно параметрам в командной строке.