Тема работы - изучение прикладной архитектуры процессора 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)
http://forum.pascal.net.ru/index.php?showtopic=4034
тут есть ввод, фпу, вывод...
спасибо Олежкин!!!!!!
FreeMan и тебе спасибо. только я ничего не понимаю в ассемблере поэтому та ссылка мне не помогла, но все равно СПАСИБО!!!!
на самом деле нифига..
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
;########### 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
вот что я пытался сделать
exp_test.rar ( 1.55 килобайт )
Кол-во скачиваний: 444
при запуске программы вводим 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