IPB
ЛогинПароль:

> ПРАВИЛА РАЗДЕЛА!!!

1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!

 
 Ответить  Открыть новую тему 
> Вычисление значения функции, помогите пожалуйста!
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 2
Пол: Женский
Реальное имя: Ольга

Репутация: -  0  +


Тема работы - изучение прикладной архитектуры процессора Intel 8086 -80486, команд обработки целых двоичных чисел в целочисленном устройстве процессора Intel 80486, вещественных и целых десятичных в устройстве FPU


3. Разрабатываемая программа должна содержать следуюцие разделы:
· Ввод значения Х в символьном виде в десятичном представлении посредством клавиатуры;
· Преобразование значения Х в выбранное внутреннее представление.
· Вычисление заданного выражения y = f (X) с сохранением результата вычисления в памяти.
· Преобразование результата вычисления в десятичное представление.
· Преобразование результата вычисления в символьное десятичное представление
· Вывод результата вычисления в символьном вид.на экран.
1. Все цифровые данные определить в программе как соответствующие константы.
2. Вычислить Y – вычисления произвести, используя 16 или 32 – битную арифметику в зависимости от требуемого диапазона представления данных
3. Вывести значения Y на экран монитора в шестнадцатеричном представлении.
4. Преобразовать Y в десятичное представление и результат вывести на экран монитора.
Примечание. 1. Задача решается с использованием шелых и вещественных чисел. Тип чисел выбирается студентом сомостоятельно.
2. Рекомендуется первоначально решить задачу с определением переменной X как константы в разделе сегмента данных и после правильного решнения вычислительной части задания перейти к решению задачи ввода переменной X и вывода результата решений Y.


Выражение для вычисления
1)y=2(x-1)^3
2)y=(x^2+2x+2)e^(-x)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


-
****

Группа: Пользователи
Сообщений: 480
Пол: Мужской

Репутация: -  4  +


Проблема с вводом числа
тут есть ввод, фпу, вывод...


--------------------
бб
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


-
****

Группа: Пользователи
Сообщений: 480
Пол: Мужской

Репутация: -  4  +


Цитата
как вычислить e^x ?

2^(log2e*x)
команды фпу: FLDL2E - загрузить log2e, F2XM1 - (получить 2 в степени st(0)) -1


--------------------
бб
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4





Группа: Пользователи
Сообщений: 2
Пол: Женский
Реальное имя: Ольга

Репутация: -  0  +


спасибо Олежкин!!!!!! heart.gif wub.gif
FreeMan и тебе спасибо. только я ничего не понимаю в ассемблере smile.gif поэтому та ссылка мне не помогла, но все равно СПАСИБО!!!!


Сообщение отредактировано: perfect -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


на самом деле нифига..
Цитата
2^(log2e*x)
команды фпу: FLDL2E - загрузить log2e, F2XM1 - (получить 2 в степени st(0)) -1

не выходит так..

вот код
 FINIT	  

fild con1
fldl2e
fmul
fild con1
fsubr st(1), st
f2xm1
fistp stp; 2^ (log2e)
fild p_d
fild con2
fscale
fistp tw
fild tw
fild stp
fmul


fistp rw

нифига не поучается считаь так...

примеры из интерена вооще не работают..
напримре отсюда:
http://club.shelek.com/viewart.php?id=101
;########### MYEXP ###########
; Мой вариант вычисления экспоненты
fld ARGUMENT
fldl2e
fmul
ffld st(0)
ffld st(0)
frndint
fsub
f2xm1
fld1
fadd
fxch
frndint
fld1
fscale
fxch
ffree st(0)
fincstp
fmul
fstp RESULT
он не компилируется вообще...

что можно скзаать.... ужас.... нигде не найти описаний, документации.... примеров...

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


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


вот что я пытался сделать
Прикрепленный файл  exp_test.rar ( 1.55 килобайт ) Кол-во скачиваний: 478

при запуске программы вводим 2-х значное число (например 02) и жмем вволд..
результат - у меня получается только 2^х..
вот почему..

e^x = 2^ (xlog2e)
НО!
когда мы вычисляем 2^ ... асму требуется что бы степень ьыла от -1 до 1...
а если например 2^14 ?
я решил сделать так..
2^ (x*log2e) = 2^x * 2^log2e
2^x вычилсяем командой scale. а 2^log2e = 2* 2*(log2e-1)
тогда вролде бы долно работать но получаю единицу, и в результате
протсо вычисление
2^x вместо e^x
sad.gif


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


-
****

Группа: Пользователи
Сообщений: 480
Пол: Мужской

Репутация: -  4  +


Цитата
2^ (x*log2e) = 2^x * 2^log2e

2^x*2^log2e=2^(x+log2e)
команда fscale работает с любыми показателями. она умножает st(0) на 2^st(1), но перед этим округляет st(1) до целого в сторону 0.
теперь смотри. есть команда F2XM1. она работает только с числами от -1 до +1, то есть подходит для работы с дробной частью
2^(дробь)=2^(целая часть+дробная часть)=2^(целая часть)*2^(дробная часть). число x*log2e = дробное число. а значит нахождение e^x сводится к разбиению дробного числа на целое и остаток и вычисление 2 в соответствующих степенях соответствующими командами
Цитата
он не компилируется вообще...

там есть ошибки. дома посмотрю где эти ошибки и исправлю


--------------------
бб
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 23.12.2024 19:30
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name