Форум программистов, компьютерный форум, киберфорум
Assembler: математика, вычисления
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
 Аватар для qluxzq
1 / 1 / 3
Регистрация: 21.11.2015
Сообщений: 64

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

27.12.2017, 01:31. Показов 895. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, помогите, пожалуйста, вычислить выражение с использованием FPU.
Заранее спасибо.
https://www.cyberforum.ru/cgi-bin/latex.cgi?4x*{(ln x)}^{2}-4*sqrt{1+x}+5
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.12.2017, 01:31
Ответы с готовыми решениями:

Вычисление выражения по формуле.
Уважаемые программисты, помогите пожалуйста с решением примера на ассемблере \frac{(a-b)^3 (c+d)}{ab^2}*(c+a^2)-\frac{eb}{a(c-d)}

Вычисление выражения по формуле
Добрый день! Подскажите как реализовать на ассемблере nasm программу для высчитывания формулы: b*x^2 + sin(y)

Вычисление выражения по формуле
Входные данные необходимо вводить с клавиатуры; результат должен быть выведен на консоль.

1
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8665 / 4502 / 1670
Регистрация: 01.02.2015
Сообщений: 13,926
Записей в блоге: 13
30.12.2017, 18:34
masm32 for Windows
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
.486
.model flat, stdcall
option casemap :none
 
        include \masm32\include\windows.inc
 
        include \masm32\include\user32.inc
        include \masm32\include\kernel32.inc
        include \masm32\include\masm32.inc
 
        includelib \masm32\lib\user32.lib
        includelib \masm32\lib\kernel32.lib
        includelib \masm32\lib\masm32.lib
.data
        X               dq      ?
        Result          dq      ?
        hConsoleOutput  HANDLE  ?
        hConsoleInput   HANDLE  ?
        aszPromptX      db      0Dh, 0Ah, 'Enter the X: ', 0
        aszMsgResult    db      'Result: ', 0
        aszPressLeftAlt db      0Dh, 0Ah, 0Dh, 0Ah, "Press Left Alt to exit", 0
        dwColorRed      dd      FOREGROUND_RED
        dwColorWhite    dd      FOREGROUND_RED + FOREGROUND_GREEN + FOREGROUND_BLUE
        dwCursorPosition        COORD   <20, 10>
        Buffer          db      1024 dup(?)
        BufLen          dd      ?
.code
 
start:
 
        ; получение описателей ввода и вывода консоли
        invoke  GetStdHandle,   STD_INPUT_HANDLE
        mov     hConsoleInput,  eax
        invoke  GetStdHandle,   STD_OUTPUT_HANDLE
        mov     hConsoleOutput, eax
        ;очистка экрана
        invoke  ClearScreen
        ;ввод X
        invoke  WriteConsole, hConsoleOutput, ADDR aszPromptX,\
                LENGTHOF aszPromptX - 1, ADDR BufLen, NULL
        invoke  ReadConsole, hConsoleInput, ADDR Buffer,\
                LENGTHOF Buffer, ADDR BufLen, NULL
        lea     esi,    [Buffer]        ;удаление из буфера
        add     esi,    [BufLen]        ;символов перевода строки
        mov     [esi-2],word ptr 0
        finit
        invoke  StrToFloat, ADDR Buffer, ADDR X
        ;вычисление по формуле
        finit
        ;st(0)=x
        fld     [X]
        ;st(0)=4x,      st(1)=x
        fld     st(0)
        fadd    st(0),  st(0)
        fadd    st(0),  st(0)
        ;st(0)=ln(x),   st(1)=4x,       st(2)=x
        fld     st(1)
        fldln2                  ; st(0)=ln(2) st(1)=x
        fxch    st(1)           ; st(0)=x st(1)=ln(2)
        fyl2x                   ; st(0)=log2(x)*ln(2)=ln(x)
        ;st(0)=(ln(x))^2,       st(1)=4x,       st(2)=x
        fmul    st(0),  st(0)
        ;st(0)=4x*(ln(x))^2,    st(1)=x
        fmulp   st(1),  st(0)
        ;st(0)=4*sqrt(1+x),     st(1)=4x*(ln(x))^2,     st(2)=x
        fld     st(1)
        fld1
        faddp   st(1),  st(0)
        fsqrt
        fadd    st(0),  st(0)
        fadd    st(0),  st(0)
        ;st(0)=4x*(ln(x))^2-4*sqrt(1+x)+5,      st(1)=x
        fsubp   st(1),  st(0)
        fld1
        fadd    st(1),  st(0)
        fadd    st(1),  st(0)
        fadd    st(1),  st(0)
        fadd    st(1),  st(0)
        faddp   st(1),  st(0)
        ;сохранение результата
        fstp    [Result]
 
        ;вывод результата
        ; - смена цвета
        invoke  SetConsoleTextAttribute, hConsoleOutput, [dwColorRed]
        ; - установка позиции
        invoke  SetConsoleCursorPosition, hConsoleOutput, dword ptr [dwCursorPosition]
        ; - вывод
        invoke  WriteConsole, hConsoleOutput, ADDR aszMsgResult,\
                LENGTHOF aszMsgResult - 1, ADDR BufLen, NULL
        invoke  FloatToStr2, [Result], ADDR Buffer
        invoke  StrLen, ADDR Buffer
        mov     [BufLen],       eax
        invoke  WriteConsole, hConsoleOutput, ADDR Buffer,\
                BufLen, ADDR BufLen, NULL
 
        ;ожидание нажатия Left Alt
        invoke  SetConsoleTextAttribute, hConsoleOutput, [dwColorWhite]
        invoke  WriteConsole, hConsoleOutput, ADDR aszPressLeftAlt,\
                LENGTHOF aszPressLeftAlt - 1, ADDR BufLen, NULL
        @@WaitForLAlt:
                invoke  GetAsyncKeyState, VK_LMENU
                and     eax,    8000h
        jz      @@WaitForLAlt
        ;завершение программы
        invoke  ExitProcess, 0
 
end start
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.12.2017, 18:34
Помогаю со студенческими работами здесь

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

Вычисление выражения по формуле
Составить программу вычисления y=(10*sin({x}_{1})+20*cos({x}_{2}))/x_3^3. Числа вводятся с клавиатуры. Вычисления чисел производить с...

Вычисление выражения по формуле
Нужно решить задачу на ассемблере, самую простую.. а я в нем не жу жу. Z=a^2*sqrt((c*d)/b) Вот задача. Z=a^2\; \cdot\sqrt{\frac{c\cdot...

Вычисление выражения по формуле
Входные данные необходимо вводить с клавиатуры; результат должен быть выведен на консоль.

Вычисление выражения по формуле
Входные данные необходимо вводить с клавиатуры; результат должен быть выведен на консоль.


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru