|
|
| Посл.отвђт | Сообщен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 |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.081 |