· Начало · Статистика · WASM.RU · Noir.Ru ·

 WASM Phorum (Оффлайн - 24.11.2003) —› WASM.ASSEMBLER —› как посчиать (-2)*ln(num)

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


Дата: Апр 29, 2003 18:43:05

Вопрос по вычислению (-2.0)*ln(num), где 0 < num < 1 в MASM32

.data
fNULL dd 0.0
num dd 0
divider dd 100
two dd -2.0
.code
invoke nrandom, 100
mov num, eax
fld fNULL
fiadd num ; в st(0) теперь, например, 25.0
fidiv divider ; в st(0) теперь 0.250

а дальше как ?


Дата: Апр 29, 2003 18:43:46

Вопрос по вычислению (-2.0)*ln(num), где 0 < num < 1 в MASM32

.data
fNULL dd 0.0
num dd 0
divider dd 100
two dd -2.0
.code
invoke nrandom, 100
mov num, eax
fld fNULL
fiadd num ; в st(0) теперь, например, 25.0
fidiv divider ; в st(0) теперь 0.250

а дальше как ?


Дата: Апр 29, 2003 19:14:28

.data
num dd 0
divider dd 100
two dd -2.0
.code
invoke nrandom, 100
mov num, eax

;;fld fNULL
fldz ; Это лучше
fiadd num ; в st(0) теперь, например, 25.0
fidiv divider ; в st(0) теперь 0.250

=======================================
Команда:
FYL2X
Назначение:
Вычисление у*log2(x)

Вычисляет ST(1)*log2(ST(0)), помещает результат в ST(1) и выталкивает ST(0) из стека, так что после этой операции результат оказывается в ST(0). Первоначальное значение ST(0) должно быть неотрицательным. Если регистр ST(0) содержал ноль, результат (если ZM = 1) будет равен бесконечности со знаком, обратным ST(1).

;Loge(x) = loge(2)*log2(x) = FYL2X( loge(2), x ) = FYL2X ( FLDLN2, x )

=======================================

FLDLN2
FYL2X
=======================================


Дата: Апр 29, 2003 19:36:34

http://www.wasm.ru/article.php?article=edfpu02

Мда, жаль рисунков нет...
Но это мы поправим


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