Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler: математика, вычисления
Войти
Регистрация
Восстановить пароль
 
qluxzq
0 / 0 / 3
Регистрация: 21.11.2015
Сообщений: 58
1

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

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

Всем привет, помогите, пожалуйста, вычислить выражение с использованием FPU.
Заранее спасибо.
http://www.cyberforum.ru/cgi-bin/latex.cgi?4x*{(ln x)}^{2}-4*sqrt{1+x}+5
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.12.2017, 01:31
Ответы с готовыми решениями:

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

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

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

Вычисление выражения по формуле
Нужно решить задачу на ассемблере, самую простую.. а я в нем не жу жу....

Вычисление выражения по формуле
Вычислите, используя FPU, следующее выражение: Входные данные необходимо...

1
ФедосеевПавел
Модератор
4153 / 2263 / 919
Регистрация: 01.02.2015
Сообщений: 7,527
30.12.2017, 18:34 2
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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.12.2017, 18:34

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

Вычисление выражения по формуле
Помогите изменить код для формулы. Z=\frac{X \cdot Y}{X+Y} st_k...

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru