· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.ASSEMBLER —› Замена Tasm директивы ifdef для Fasm

Посл.отвђт Сообщенiе


Дата: Сен 26, 2004 19:14:20

если кто не помнит я поясню указываешь в командной строке /D Строка

ifdef Строка
mov eax,0
else
xor eax,eax
endif

Как сделать анологичное в Fasm


Дата: Сен 26, 2004 19:20:39


Дата: Сен 26, 2004 19:26:21

В макросе или при исполнении кода?
для макроса
if str='123'
mov eax,0
else
xor eax,eax
end if

для кода смотри IF.INC


Дата: Сен 26, 2004 19:35:14

Может кто не понял(а может и я) я хочу как нибудь указать что необходимо оптимизировать по размеру, или скорости
пример с ТАСМ

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:
За файлик спасибо.


Дата: Сен 26, 2004 20:00:51

Прочитал fasm_precproc.chm и не нашел ответ на свой вопрос.


Дата: Сен 26, 2004 20:29:29

Evg666
В командной строке fasm'у это указать невозможно, но можно задать в самом исходнике некую константу, в зависимости от ее значения будет ассемблирован нужный код.


Дата: Сен 26, 2004 20:41:00

DEBUG = 1

if DEBUG
  invoke Message
  ret
else
  ret
end if


Дата: Сен 26, 2004 20:54:55

Спасибо вполне разумный выход. Но параметры в командной строке Fasm не помешали бы.


Дата: Сен 26, 2004 20:58:02

Наоборот хорошо, что fasm'у можно все указать в исходнике, не городя трёхэтажную командную строку ;-)


Дата: Сен 26, 2004 21:55:24

> „параметры в командной строке Fasm не помешали бы.“

AFAIK Privalov никогда на это не пойдёт (IMHO правильно)

Вообще, FASM имеет отличную (от других ассемблеров) идеологию.
На первый взгляд некоторые вещи могут показаться странными, но на практике оказывается что они рабтают лучше :).



Вот ещё один из вариантов решения, без условной компиляции:

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


Дата: Сен 27, 2004 10:15:13

Можно параметры задавать в отдельном include -
это будет почти эквивалентно параметрам в командной строке.


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.064