0 / 0 / 1
Регистрация: 10.11.2015
Сообщений: 42
1

Регистры математического сопроцессора

23.09.2017, 16:57. Показов 2623. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Передо мной стоит задача - исследовать данную тему. Написан следующий код:
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
.MODEL small
.STACK 100h
.DATA
; область памяти, содержащая образ рабочей среды FPU
c_r  dw ?   ; регистр управления
s_r  dw ?   ; регистр состояния
t_w  dw ?   ; слово тэгов
i_p  dw ?   ; смещение команды
c_s  dw ?   ; селектор (адрес сегмента) команды
d_p  dw ?   ; смещение данного
d_s  dw ?   ; селектор данного
 
x1   dd 2.75    ; двойное слово
y1   dd 4.25    ; двойное слово
z1   dq 100     ; учетверенное слово
 
mov ax,@data
mov ds,ax   
 
fstenv c_r      ; заполнение структуры данных значением контекста FPU
mov bx,c_r      ; пересылаем регистры управления
mov dx,s_r      ; состояния
mov ax,t_w      ; тегов в регистры данных ЦП
 
fld x1      ; загружаем х1
fld y1      ; загружаем у1
fld z1      ; загружаем z1
fldz        ; загружаем ноль
fld1        ; загружаем единицу
 
fstenv c_r      ; заполнение структуры данных значением контекста FPU
mov bx,c_r      ; пересылаем регистры управления
mov dx,s_r      ; состояния
mov ax,t_w      ; тегов в регистры данных ЦП
END
Но на первой команде fstenv c_r турбо-отладчик вылетает с ошибкой APPCRASH. Подскажите, в чём может быть причина и как её исправить?

И ещё один глупый вопрос: можно ли как-то в турбо-отладчике просмотреть регистры именно математического сопроцессора?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.09.2017, 16:57
Ответы с готовыми решениями:

Определить наличие математического сопроцессора (с использованием cpuid)
Помогите написать программу определяющая наличие математического сопроцессора с использованием...

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

Что такое регистры микропроцессора? Перечислите регистры общего назначения
Помогите пожалуйста решить задания по TASM 1) Что такое регистры микропроцессора? Перечислите...

Узнать тип математического сопроцессора
Захотел, нашёл раздел реестра с информацией в HKEY_LOCAL_MACHINE. Вот код: try...

2
Модератор
Эксперт по электронике
8340 / 4234 / 1605
Регистрация: 01.02.2015
Сообщений: 13,187
Записей в блоге: 5
23.09.2017, 17:26 2
Лучший ответ Сообщение было отмечено ivanovaannadm как решение

Решение

Ваш код даже не компилируется tasm'ом - нет строки .code

Добавлено через 5 минут
В строке с END должна указываться "точка входа" - адрес (метка) начала программы.

Программа должна завершаться строками, отдающими управление операционной системе
Assembler
1
2
    mov ax, 4C00h
    int 21h
Добавлено через 3 минуты
Просмотреть содержимое стека сопроцессора можно через View - Numeric processor.
Но, к сожалению, нужен td версии 3.2. В версии 5 содержится ошибка, которая показывает нулевые значения в стеке FPU.
0
0 / 0 / 1
Регистрация: 10.11.2015
Сообщений: 42
23.09.2017, 17:39  [ТС] 3
Человечище, спасибо вам огромное! не догадалась бы просто пофиксить код. Обидно, что из-за таких глупых ошибок теряется подчас драгоценное время. Ещё раз спасибо, всё работает!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.09.2017, 17:39
Помогаю со студенческими работами здесь

Определить наличие математического сопроцессора в реестре
Доброго времени суток,помогите разобраться с использованием реестра .Используя RegOpenKey,...

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

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

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

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

Команды сопроцессора.
Подскажите, пожайлуста, как выполнить умножение при помощи сопроцессора и еще, как вводить числа с...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru