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

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

11.11.2017, 19:16. Просмотров 456. Ответов 6
Метки нет (Все метки)

На ассемблере решать. Без разницы Tasm,Masm главное было коод и с черным экраном отправьте. Пожалуйста помогитеее срочно.Вычислите, используя FPU, следующее выражение.
Исходные данные необходимо вводить с клавиатуры, результат выводить на консоль.
http://www.cyberforum.ru/cgi-bin/latex.cgi?(1+y)\frac{x+x^2+4}{{e^{(-x-2)}}+{\frac{1}{x^2+4}}}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.11.2017, 19:16
Ответы с готовыми решениями:

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

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

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

Вычисление выражения по формуле
Добрый день! Подскажите как реализовать на ассемблере nasm программу для высчитывания формулы:...

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

6
ФедосеевПавел
Модератор
4252 / 2341 / 940
Регистрация: 01.02.2015
Сообщений: 7,735
12.11.2017, 08:55 2
masm32 Windows console
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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
.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      ?
        Y               dq      ?
        Result          dq      ?
 
        aszPromptX      db      0Dh, 0Ah, 'Enter the X: ', 0
        aszPromptY      db      0Dh, 0Ah, 'Enter the Y: ', 0
        aszMsgResult    db      0Dh, 0Ah, 'Result: ', 0
        aszPressEnter   db      0Dh, 0Ah, 0Dh, 0Ah, "Press ENTER to exit", 0
        hConsoleOutput  HANDLE  ?
        hConsoleInput   HANDLE  ?
        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]        ;перевода строки
        sub     esi,    2               ;из буфера ввода
        mov     [esi], word ptr 0
        finit
        invoke  StrToFloat, ADDR Buffer, ADDR X
        ;ввод Y
        invoke  WriteConsole, hConsoleOutput, ADDR aszPromptY,\
                LENGTHOF aszPromptY - 1, ADDR BufLen, NULL
        invoke  ReadConsole, hConsoleInput, ADDR Buffer,\
                LENGTHOF Buffer, ADDR BufLen, NULL
        lea     esi,    [Buffer]        ;удаление символов
        add     esi,    [BufLen]        ;перевода строки
        sub     esi,    2               ;из буфера ввода
        mov     [esi], word ptr 0
        finit
        invoke  StrToFloat, ADDR Buffer, ADDR Y
 
        finit
        ;1+y
        fld1
        fld     [Y]
        faddp   st(1),  st(0)           ;st(0)=1+y
        ;x+x^2+4
        fld     [X]
        fld     st(0)
        fmul    st(0),  st(1)
        faddp   st(1),  st(0)
        fld1
        fadd    st(1),  st(0)
        fadd    st(1),  st(0)
        fadd    st(1),  st(0)
        faddp   st(1),  st(0)
        ;1/(x^2+4)
        fld1
        fld     [X]
        fld     st(0)
        fmulp   st(1),  st(0)
        fld1
        fadd    st(1),  st(0)
        fadd    st(1),  st(0)
        fadd    st(1),  st(0)
        faddp   st(1),  st(0)
        fdivp   st(1),  st(0)
        ;exp(-x-2)
        fld     [X]
        fld1
        fadd    st(1),  st(0)
        faddp   st(1),  st(0)
        fchs
        fldl2e                  ;st(0)=1/ln(2)=log2(e)
        fmul                    ;st(0)=x/ln(2)=x*log2(e)
        fld     st
        frndint
        fsub    st(1), st
        fxch    st(1)
        f2xm1
        fld1
        fadd
        fscale
        fstp    st(1)
        ;exp(-x-2)+1/(x^2+4)
        faddp   st(1),  st(0)
        ;[x+x^2+4]/[exp(-x-2)+1/(x^2+4)]
        fdivp   st(1),  st(0)
        ;(1+y)[x+x^2+4]/[exp(-x-2)+1/(x^2+4)]
        fmulp   st(1),  st(0)
        ;сохранение результата
        fstp    [Result]
        ;очистка FPU
        finit
        ;вывод результата
        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
 
        ;ожидание нажатия ENTER
        invoke  WriteConsole, hConsoleOutput, ADDR aszPressEnter,\
                LENGTHOF aszPressEnter - 1, ADDR BufLen, NULL
        invoke  ReadConsole, hConsoleInput, ADDR Buffer,\
                LENGTHOF Buffer, ADDR BufLen, NULL
 
        invoke  ExitProcess, 0
 
end start
1
Алена Водонаева
0 / 0 / 0
Регистрация: 28.10.2017
Сообщений: 8
12.11.2017, 19:16 3
ФедосеевПавел, если есть отправьте пожалуйста с черным экраном))))
0
ФедосеевПавел
Модератор
4252 / 2341 / 940
Регистрация: 01.02.2015
Сообщений: 7,735
12.11.2017, 19:48 4
Моникааа и Алена Водонаева, предлагаю не наглеть и хотя бы попробовать компилировать exe.

1. Загружаете masm32 с сайта http://www.masm32.com/
2. Открыть редактор masm32 на рабочем столе
3. Скопировать туда исходник
4. Сохранить исходник
5. Из меню Project скомпилировать программу Console Build All
6. Запустить программу на исполнение из меню Project - Run Program
7. Наделать скриншотов любым известным способом.
0
Моникааа
0 / 0 / 0
Регистрация: 11.11.2017
Сообщений: 3
12.11.2017, 23:07  [ТС] 5
ФедосеевПавел, у меня ноутбук тупит. Не вышло . Если бы вышло сразу зарустила бы. Поймите правильно это мне очень нужна. Скиньте пожалуйста это моя последняя просьба(
0
ФедосеевПавел
Модератор
4252 / 2341 / 940
Регистрация: 01.02.2015
Сообщений: 7,735
12.11.2017, 23:18 6
Цитата Сообщение от Моникааа Посмотреть сообщение
это моя последняя просьба(
после которой что случится?
1
Миниатюры
Вычисление выражения по формуле  
Моникааа
0 / 0 / 0
Регистрация: 11.11.2017
Сообщений: 3
12.11.2017, 23:22  [ТС] 7
ФедосеевПавел, я очень блодарно вам . Спасибо вам! Good luck!!!

Добавлено через 31 секунду
ФедосеевПавел, вы замечательный человек !
0
12.11.2017, 23:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.11.2017, 23:22

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

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

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


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

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

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