Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler: математика, вычисления
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Vinori
4 / 4 / 0
Регистрация: 27.09.2015
Сообщений: 59
1

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

24.01.2018, 11:52. Просмотров 850. Ответов 3
Метки нет (Все метки)

Нужно решить задачу на ассемблере, самую простую.. а я в нем не жу жу.
Z=a^2*sqrt((c*d)/b) Вот задача.
http://www.cyberforum.ru/cgi-bin/latex.cgi?Z=a^2\; \cdot\sqrt{\frac{c\cdot d}{b}}
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.01.2018, 11:52
Ответы с готовыми решениями:

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

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

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

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

Вычисление выражения по формуле
На ассемблере решать. Без разницы Tasm,Masm главное было коод и с черным экраном отправьте....

3
ФедосеевПавел
Модератор
4245 / 2335 / 939
Регистрация: 01.02.2015
Сообщений: 7,712
24.01.2018, 21:22 2
Лучший ответ Сообщение было отмечено Vinori как решение

Решение

masm32
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
.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
        aszPromptA      db      0Dh, 0Ah, 'Enter the A: ', 0
        aszPromptB      db      0Dh, 0Ah, 'Enter the B: ', 0
        aszPromptC      db      0Dh, 0Ah, 'Enter the C: ', 0
        aszPromptD      db      0Dh, 0Ah, 'Enter the D: ', 0
        aszMsgResult    db      0Dh, 0Ah, 'Result: ', 0
        aszPressLeftAlt db      0Dh, 0Ah, 0Dh, 0Ah, "Press Left Alt to exit", 0
.data?
        var_A           dq      ?
        var_B           dq      ?
        var_C           dq      ?
        var_D           dq      ?
        Result          dq      ?
        hConsoleOutput  HANDLE  ?
        hConsoleInput   HANDLE  ?
        BufLen          dd      ?
        Buffer          db      1024 dup(?)
 
.code
 
;ввод числа в формате double
ReadFloat       proc    lptrPrompt:DWORD, iLengthPrompt:DWORD, lptrFloat:DWORD
 
        invoke  WriteConsole, hConsoleOutput, lptrPrompt,\
                iLengthPrompt, 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, lptrFloat
        ret
ReadFloat       endp
 
main    proc
        ; получение описателей ввода и вывода консоли
        invoke  GetStdHandle,   STD_INPUT_HANDLE
        mov     hConsoleInput,  eax
        invoke  GetStdHandle,   STD_OUTPUT_HANDLE
        mov     hConsoleOutput, eax
        ;очистка экрана
        invoke  ClearScreen
        ;ввод A
        invoke  ReadFloat,      ADDR aszPromptA, \
                                LENGTHOF aszPromptA - 1, \
                                ADDR var_A
        ;ввод B
        invoke  ReadFloat,      ADDR aszPromptB, \
                                LENGTHOF aszPromptB - 1, \
                                ADDR var_B
        ;ввод C
        invoke  ReadFloat,      ADDR aszPromptC, \
                                LENGTHOF aszPromptC - 1, \
                                ADDR var_C
        ;ввод D
        invoke  ReadFloat,      ADDR aszPromptD, \
                                LENGTHOF aszPromptD - 1, \
                                ADDR var_D
 
        ;вычисление с использованием трансцендентных команд сопроцессора
        finit
        fld     [var_A]         ;a^2
        fmul    st(0),  st(0)
 
        fld     [var_C]
        fld     [var_D]
        fmulp   st(1),  st(0)   ;c*d
 
        fld     [var_B]         ;c*d/b
        fdivp   st(1),  st(0)
 
        fsqrt                   ;sqrt(c*d/b)
 
        fmulp   st(1),  st(0)   ;a^2*sqrt(c*d/b)
        ;сохранение результата
        fstp    [Result]
 
        ;вывод результата на экран
        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  WriteConsole, hConsoleOutput, ADDR aszPressLeftAlt,\
                LENGTHOF aszPressLeftAlt - 1, ADDR BufLen, NULL
        @@WaitForLAlt:
                invoke  GetAsyncKeyState, VK_LMENU
                and     eax,    8000h
        jz      @@WaitForLAlt
        ;завершение программы
        invoke  ExitProcess, 0
main    endp
 
end     main
1
Vinori
4 / 4 / 0
Регистрация: 27.09.2015
Сообщений: 59
24.01.2018, 21:25  [ТС] 3
Спасибо) Когда вы отредактировали сообщение я так и подумал что вы мне поможете! Спасибо огромное. Ассемблер это не мое, мне бы с++ ))
0
proc3nt
25.01.2018, 03:12     Вычисление выражения по формуле
  #4

Не по теме:

Цитата Сообщение от Vinori Посмотреть сообщение
Ассемблер это не мое, мне бы с++ ))
Мне бы в небо, мне бы в небо,
Здесь я был, а там я не был.
Мне бы в небо, мне бы в небо,
Здесь я был, а там я не был

(с) Ленинград

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.01.2018, 03:12
Привет! Вот еще темы с ответами:

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

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

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


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

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

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