Форум программистов, компьютерный форум, киберфорум
Assembler: DOS/Real Mode/16-bits
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 Аватар для greshnikk
31 / 31 / 8
Регистрация: 05.11.2008
Сообщений: 162

Использование сопроцессора.

05.11.2008, 16:15. Показов 4080. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Походу изучения сопроцессора у меня возникла небольшая проблемма. Точнее вопрос.
Стоит задача определить косинус угла.
Я делаю так (MASM)
...
finit
fld sinus
cos
fst sinus
...
sinus dd ('0')

В результате я в переменной sinus получаю значение равное (смотрю в отладчике) 00 00 3F 80. Хотя по идее cos(0) = 1
Далее я смотрю через Turbo Debugger, что же у меня находится в "стеке" сопроцессора. Когда я заношу туда 0, то он пишет что я занес что то типа 17.*****... после выполнения команды fcos, я получаю значение 1. Но почему то командой fst я вытаскиваю не 1... Хотя если я заменю fst на fist то вытащится 1. Возникла мысль, что в "стеке" сопроцессора хранится что то типа 1.000 поетому он и вытаскивает что то непонятное. Сразу возник вопрос как можно сохранить в переменной вещественное число. Пробовал командой
perem dd ('1.32'), не компилируется, пишет что очень большая константа.
Обобщая всё выше сказанное у меня 2 вопроса
1) Правильно ли я понял работу сопроцессора и соответственно написал программу, если нет то просьба обьяснить.
2) Как можно хранить, использовать вещественное число в переменной.
Заранее спасибо.

Д О Б А В Л Е Н О
Думаю вопрос можно снять и закрыть тему.
Не найдя ответа на вопрос здесь, я решил пока почитать литературу (как говорится RTFM).
Для тех кому мой вопрос актуален, пишу ответ.
Для начала я решил проверить свою теорию насчет того, что сопроцессор заносит в ячейку памяти число с плавающей точкой (аля 1.0000001...). Под отладчиком у меня в той ячейке было 00 00 80 3F (в своём вопросе я перепутал местами 80 и 3F). Данные хранятся в обратном порядке, поетому очевидно что само число = 00003F80.
Покопавшись в горах литературы я перевел ето число из машинного представления в нормальное десятичное. Получилось примерно 0,97. То есть с погрешностью можно сказать что он мне как раз и записал косинус 1.
Далее просто надо написать процедуру переводящую число из машинного представления в десятичную систему счисления и всё.

P.S у меня написана переменная sinus, просто я сначала с синусом работал, но так как синус 0 = 0, то я решил сначала косинус взять, а поменять название переменной забыл.
1
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.11.2008, 16:15
Ответы с готовыми решениями:

Как подключить модуль математического сопроцессора FPU emu8086 для выполнения арифметических операций
Как подключить модуль математического сопроцессора FPU для выполнения арифметических операции над вещественными числами?

Работа сопроцессора
Помогите найти ошибку mov a,ax fldpi fxch fild a fmul st,st(1) mov ds,si

Константы сопроцессора
Зачем в сопроцессоре команды загрузки констант? С ПИ понятно, например, а вот зачем загружать как константу 1.0 или 0.0? Ведь можно же...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.11.2008, 16:15
Помогаю со студенческими работами здесь

Команды сопроцессора.
Подскажите, пожайлуста, как выполнить умножение при помощи сопроцессора и еще, как вводить числа с запятой (например, 2.5). Заранее спасибо

Стек сопроцессора
Друзья, не могу до конца разобраться с работой стека. В стек загружаются данные последовательно, последняя загруженная переменная...

Обновление сопроцессора
Вчера переустановил винду, с 7 на 7, и когда винда установилась в разделе звука был только HDMI воспроизведение. Посмотрел в диспетчер...

Включение/отключение сопроцессора
Доброго времени суток. Подскажите, как можно выполнить включение и выключение арифметического сопроцессора ассемблерными командами?

Регистры математического сопроцессора
Доброго времени суток! Передо мной стоит задача - исследовать данную тему. Написан следующий код: .MODEL small .STACK 100h .DATA ;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru