Форум программистов, компьютерный форум, киберфорум
Assembler: математика, вычисления
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
 Аватар для Vexel
12 / 12 / 2
Регистрация: 18.10.2009
Сообщений: 158
FASM

Вычислить выражение по формуле

22.05.2010, 19:55. Показов 1018. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дан пример: 2,25/1.125-0,5*0,875/(2,75+0,75). Не выходит верный ответ вообще, все что знал перепробовал. Помогите пожалуйста ещё раз. Вот код программы.
Assembler Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
org    100h
 section .data
    b    dd 2.25
    c    dd 1.125
    d    dd 0.5
    e    dd 0.875
    f    dd 2.75
    g    dd 0.75
section       .text
Start: 
    fninit            ;Инициализируем FPU без ожидания 
    fld      dword[ds:b]  ; st0 = B   
    fdiv     dword[cs:c]  ; st0 = B/C 
    fld     dword[ds:d]  ; st1 = st0, st0 =D
    fmul     dword[ds:e]  ; st0 = E * F  
    fsubp    st1,st0      ; st0 = (B/C) - (D*E)
    fdiv   dword [ds:f] ; st0 = (B/C) - (D*E)/F
    fld    dword [ds:g] 
    fadd    dword [ds:g]
  fdivp st0
    int 20h
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.05.2010, 19:55
Ответы с готовыми решениями:

Вычислить выражение по формуле
Не могу решить задачу на ассемблере. Пример нужно решить в программе Microsoft Visual Studio в C++ с ассемблерной вставкой которая будет...

Вычислить выражение по формуле
Помогите вычислить на ассемблере, именно сам код вычисления

Вычислить выражение по формуле
Здрвствуйте у меня возникла такая проблема, в общем дан пример см. во вложения. Последняя строчка это результат который должен получиться....

1
28 / 24 / 0
Регистрация: 03.02.2010
Сообщений: 66
22.05.2010, 20:45
fdivp st0 - это бред. st0 делится на st0, дефолтным аргументом выступает всегда верх стека.
Assembler Скопировано
1
2
3
4
5
6
7
8
9
    ; B/C - D*E/(F+G)
    fld [B]        ; st0 = B
    fdiv [C]       ; st0 = B / C
    fld [D]        ; st1 = st0, st0 = D
    fmul [E]       ; st0 = D * E
    fld [F]        ; st2 = st1, st1 = st0, st0 = F
    fadd [G]       ; st0 = F + G
    fdivp st1,st0  ; st1 = D*E; st0 = F+G; st0 = st1/st0; st0=st1 ; st1=st2 
    fsubp st1,st0  ; st1 = B/C; st0 = (D*E)/F+G; st0 = st1-st0 = B/C - D*E/(F+G)
У меня получилось 1.875. Вроде бы правильно.
PS: st-регистры кроме st0 и st1 - недоступны для прямого доступа. Можно крутить и двигать стек, но прямого доступа как к st0 и st1 к ним нет. Можно прокрутить/сдвинуть стек регистров так что они сдвинутся на место текущих st0 и st1. Это как барабан где доступны только две ячейки и вы крутите этот барабан что б получить доступ к этим ячейкам. Впрочем вам этим не обязательно забивать себе голову(хотя полезно бы изучить что да как с этим FPU)

Вот есть хорошая статья по FPU
PPS: Я тестировал вышеозначенные инструкции в такой программе. Компилятор Fasm for Windows.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.05.2010, 20:45
Помогаю со студенческими работами здесь

Вычислить выражение по формуле
\huge y=\frac{{x^2}-ax}{b+2}-\frac{x^3}{3}+{a^2}x format PE GUI 4.0 include 'C:\Users\Никита\Desktop\лабораторные работы по архитектуры...

Вычислить выражение по формуле
Посчитать, используя FPU, следующее: 1+|y-x|+(|y-x|^2)/2+(|y-x|^3)/3 Данные должны вводиться с клавиатуры, результат необходимо...

Вычислить выражение по формуле
Помогите, пожалуйста, составить программу, а то сессия уже идет :cry: Составить программу на ассемблере для вычисления выражения в...

Вычислить выражение по формуле
Помогите пожалуйста решить пример на паскале все отлично могу решить, а вот с ассемблером мы явно не дружим,и если можно с комментариями...

Вычислить выражение по формуле
Помогите написать программу с арифметическими командами на сопроцессоре. ( что бы были +,-,*,/) Если можно с коментарием. например...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Работа с объемным DOM в javascript
Htext 04.04.2025
Сегодня прочитал статью тут о расходах памяти в JS, ее утечках и т. п. И вот что вспомнил из своей недавней практики. Может, кому пригодится. Хотя, в той статье об этом тоже есть. Дело в том, что я. . .
Оптимизация производительности Node.js с помощью кластеризации
run.dev 04.04.2025
Масштабирование приложений для обработки тысяч и миллионов запросов — обыденная задача для многих команд. Node. js, благодаря своей асинхронной событийно-ориентированной архитектуре, стал популярной. . .
Управление зависимостями в Python с Poetry
py-thonny 04.04.2025
Стандартный инструмент для установки пакетов в Python - pip - прекрасно справляется с базовыми сценариями: установил пакет командой pip install и используешь его. Но что произойдёт, когда разные. . .
Мониторинг с Prometheus в PHP
Jason-Webb 04.04.2025
Prometheus выделяется среди других систем мониторинга своим подходом к сбору и хранению метрик. В отличие от New Relic, который использует агентный подход и отправляет данные во внешнее хранилище,. . .
Пакет Context в Golang: Управление потоками и ресурсами
golander 04.04.2025
Работа с горутинами в Go часто напоминает управление непослушными детьми - они разбегаются кто куда, делают что хотят и не всегда завершаются вовремя. К счастью, в Go 1. 7 появился пакет context,. . .
Контейнеризация React приложений с Docker
Reangularity 03.04.2025
Контейнеризация позволяет упаковать приложение со всеми его зависимостями в автономный контейнер, который можно запустить на любой платформе с установленным Docker. Это существенно упрощает процессы. . .
Свой попап в SwiftUI
mobDevWorks 03.04.2025
SwiftUI, как декларативный фреймворк от Apple, предоставляет множество инструментов для создания пользовательских интерфейсов. В нашем распоряжении есть такие API как alerts, popovers, action sheets. . .
Антипаттерны микросервисной архитектуры
ArchitectMsa 03.04.2025
Хорошо спроектированная микросервисная система может выдержать испытание временем, оставаясь гибкой, масштабируемой и устойчивой к большинству проблем. Такая архитектура обладает высоким уровнем. . .
std::mutex в C++: Советы и примеры использования
bytestream 03.04.2025
std::mutex - это механизм взаимного исключения, который гарантирует, что критический участок кода выполняется только одним потоком в каждый момент времени. Это простое, но могущественное средство. . .
Не удержался от оценки концепции двигателя Стирлинга.
Hrethgir 03.04.2025
Сколько не пытался - она выдавала правильные схемы, причём случайно рисовала горячие области в середине, холодные по краям, трубки с краёв в низ и магнит в соединяющей, но при этой выдавала описание. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер