Форум программистов, компьютерный форум, киберфорум
Наши страницы

Assembler: математика, вычисления

Войти
Регистрация
Восстановить пароль
 
Uncle Remus
Заблокирован
#1

Конвертер арифметических выражений в команды на ассемблере (FASM) - Assembler

17.02.2018, 14:26. Просмотров 280. Ответов 8
Метки нет (Все метки)

90% топиков созданных в разделе "Assembler для начинающих" это просьбы написать то или иное арифметическое/ алгебраическое/ тригонометрическое выражение. Как правило, сами выражения повторяются, просьба пользователей-студентов использовать кнопку Поиск будет проигнорирована. Здесь ссылка на формирователь заготовки на диалекте ассемблера FASM который формирует из командной строки
(abs(-(pow(sin(alpha),2)+pow(cos(alpha),2))-(-1))<1/1000)&((2+2=5)|(3+1>3.5))&(not(abs(arcsin(45)-0.5)<1/1000)) ассемблерную болванку.
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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
finit
fld dword [alpha]
mov [result],57.29577951308232f
fld dword [result]
fdivp st1,st0
fsin
mov [result],2f
fld dword [result]
fxch
fld1
fxch
fyl2x
fldl2e
fdivp st1,st0
fmulp st1,st0
fldl2e
fmulp st1,st0
fld1
fscale
fxch
fld1
fxch
fprem
f2xm1
faddp st1,st0
fmulp st1,st0
fld dword [alpha]
mov [result],57.29577951308232f
fld dword [result]
fdivp st1,st0
fcos
mov [result],2f
fld dword [result]
fxch
fld1
fxch
fyl2x
fldl2e
fdivp st1,st0
fmulp st1,st0
fldl2e
fmulp st1,st0
fld1
fscale
fxch
fld1
fxch
fprem
f2xm1
faddp st1,st0
fmulp st1,st0
faddp st1,st0
mov [result],0f
fld dword [result]
fxch
fsubp st1,st0
mov [result],0f
fld dword [result]
mov [result],1f
fld dword [result]
fsubp st1,st0
fsubp st1,st0
fabs
mov [result],1f
fld dword [result]
mov [result],1000f
fld dword [result]
fdivp st1,st0
fcomip st1
fstp dword [result]
jna l946200
fld1
jmp l329682
l946200:
fldz
l329682:
mov [result],2f
fld dword [result]
mov [result],2f
fld dword [result]
faddp st1,st0
mov [result],5f
fld dword [result]
fcomip st1
fstp dword [result]
jne l524130
fld1
jmp l936627
l524130:
fldz
l936627:
mov [result],3f
fld dword [result]
mov [result],1f
fld dword [result]
faddp st1,st0
mov [result],3.5f
fld dword [result]
fcomip st1
fstp dword [result]
jnb l853
fld1
jmp l887970
l853:
fldz
l887970:
fistp dword [result]
mov eax,[result]
fistp dword [result]
or [result],eax
fild [result]
fistp dword [result]
mov eax,[result]
fistp dword [result]
and [result],eax
fild [result]
mov [result],45f
fld dword [result]
fstp dword [result]
fld dword [result]
fld1
fld dword [result]
fld dword [result]
fmulp st1,st0
fsubp st1,st0
fsqrt
fdivp st1,st0
fld1
fpatan
mov [result],57.29577951308232f
fld dword [result]
fxch
fmulp st1,st0
mov [result],0.5f
fld dword [result]
fsubp st1,st0
fabs
mov [result],1f
fld dword [result]
mov [result],1000f
fld dword [result]
fdivp st1,st0
fcomip st1
fstp dword [result]
jna l316948
fld1
jmp l6311
l316948:
fldz
l6311:
fld1
fxch
fsubp st1,st0
fistp dword [result]
mov eax,[result]
fistp dword [result]
and [result],eax
fild [result]
fstp dword [result]
Если можно, то закрепите топик
2
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.02.2018, 14:26
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Конвертер арифметических выражений в команды на ассемблере (FASM) (Assembler):

Использование арифметических команд микропроцессора (fasm) - Assembler
Здравствуйте, есть у меня вот такое задание: Задание: Вычислить заданное целочисленное выражение для исходных данных, используя...

Вычисление арифметических выражений - Assembler
выражение (C/D+3*A/2)/(C-A+1) записать на ассемблере.Я бы сам написал,НО надо еще связать с паскалем! Смотрим демотиваторы,читаем...

Команды в ассемблере - Assembler
Здравствуйте. Начал изучение ассемблера. Появились некоторые вопросы по описанию команд: №1. xchg ax,di Мнемоника: XCHG ax,r16 КОП:...

Арифметические команды в ассемблере. Проверьте код - Assembler
data segment r db 3 y db ? data ends stk segment stack ...

Вычисление арифметических выражений на ассемблере - Assembler
{1}^{5}+{2}^{5}+{3}^{5}+...{n}^{5}=(1/12) •{n}^{2}{(n+1)}^{2}({2n}^{2}+2n-1) как вычислить на ассемблере? ...

ОС на ассемблере FASM - Assembler
Всем доброго времени суток! Я пишу операционную систему, загружаемую с дискеты. Пока она очень примитивная, но работает. Файловую...

8
ФедосеевПавел
Модератор
3249 / 1859 / 751
Регистрация: 01.02.2015
Сообщений: 6,377
17.02.2018, 14:53 #2
Есть множество тем, которые хотелось бы держать на виду. Но заполнять область закреплёнок тоже стоит осмотрительно.

Могу перенести тему в корень "Низкоуровневого" - там она дольше будет оставаться "на плаву".

Для подобных интересных ссылок, статей, тем в разделе, наверное, есть смысл создать тему "Это интересно!" Но тема должна быть хорошо продумана, оформлена, структурирована и быть короткой - иначе в потоке символов и жизнь из неё уйдёт.

Один из пользователей недавно обещал подумать над созданием подобного, но дело это нелёгкое, помойку он создавать не хочет - поэтому темы нет.
Тут периодически всплывает и тонет тема с "хорошей литературой" на 10 страниц - хороший образец плохого обилия текста.

Перенести тему в корень?

Добавлено через 2 минуты
То, что формируется по ссылке не имеет РЭ (руководства по эксплуатации) и ограничено лишь выражениями для FPU.
Так что закреплять - рано.
0
Uncle Remus
Заблокирован
17.02.2018, 16:10  [ТС] #3
ФедосеевПавел,
так попробуйте написать РЭ и попробовать что-то другое, кроме команд для FPU, но, судя по примеру, там есть и логические AND, OR, NOT, условные переходы. Может быть местные умельцы WEB-программирования сделают нечто похожее для раздела "Низкоуровневое программирование", стоит только начать...

Открыл html файл по ссылке, действительно только инструкции fpu, комментарии на словенском языке. Жалко, что я не разбираюсь в вэб-программировании, те кто разбираются вполне могут добавить ADD, SUB, DIV, MUL и работу не со стеком FPU, а с РОН-регистрами. Работает и в оффлайн-режиме
0
ФедосеевПавел
Модератор
3249 / 1859 / 751
Регистрация: 01.02.2015
Сообщений: 6,377
17.02.2018, 20:34 #4
Закреплю тему в подразделе "Математика и вычисления".
Но сразу отмечу, что это временно, т.к. она является по сути ссылкой на онлайн-сервис.

Думаю, после появления темы "Интересное вокруг нас и в разделе" ссылка на ресурс перекочует туда, а тему я откреплю.
0
Kukuxumushu
2024 / 467 / 84
Регистрация: 13.06.2015
Сообщений: 1,590
Завершенные тесты: 2
17.02.2018, 20:48 #5
Ещё бы такой под SSE - цены бы ему не было))
0
Jin X
❗❗ RTFM 👈
3737 / 1033 / 144
Регистрация: 14.12.2014
Сообщений: 2,197
Записей в блоге: 4
Завершенные тесты: 2
19.02.2018, 01:33 #6
Цитата Сообщение от Kukuxumushu Посмотреть сообщение
Ещё бы такой под SSE - цены бы ему не было))
Представь какой код получится при подсчёте какого-нибудь синуса или логарифма... хотя я не уверен, что тут степень считается правильно, т.к. правильная степень – функция довольно громоздкая.

Добавлено через 39 секунд
Цитата Сообщение от ФедосеевПавел Посмотреть сообщение
Но сразу отмечу, что это временно, т.к. она является по сути ссылкой на онлайн-сервис.
А что плохого в ссылке на онлайн-сервис, если этот сервис отвечает запросам многих TC раздела?

Добавлено через 3 минуты
Цитата Сообщение от Uncle Remus Посмотреть сообщение
Открыл html файл по ссылке, действительно только инструкции fpu, комментарии на словенском языке. Жалко, что я не разбираюсь в вэб-программировании, те кто разбираются вполне могут добавить ADD, SUB, DIV, MUL и работу не со стеком FPU, а с РОН-регистрами.
По идее, можно и самим сделать, учитывая довольно скудный набор операций: скобки, + - * / %, степень. Ну ещё & | ^ (xor), можно добавить ещё ?:
0
ФедосеевПавел
Модератор
3249 / 1859 / 751
Регистрация: 01.02.2015
Сообщений: 6,377
19.02.2018, 02:07 #7
В длинной теме с живым общением единственно информативной частью является ссылка в первом сообщении.
Поэтому после появления темы о интересных и полезных ссылках - откреплю данную тему.

Добавлено через 8 минут
И ко всему - ни один новичок так и не сможет воспользоваться этим сервисом - т.к. не разберётся с входной строкой.
0
Jin X
❗❗ RTFM 👈
3737 / 1033 / 144
Регистрация: 14.12.2014
Сообщений: 2,197
Записей в блоге: 4
Завершенные тесты: 2
19.02.2018, 02:50 #8
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от ФедосеевПавел Посмотреть сообщение
В длинной теме с живым общением единственно информативной частью является ссылка в первом сообщении.
Ну, так всегда же можно вынести "лишние" сообщения в отдельную тему
А по способу ввода входной строки можно написать мануал на несколько строк (для "особо одарённых"). Я думаю, не сложно разобраться в том, что косинус 45, умноженный на 3 и делённый на 10 записывается как cos(45)*3/10. Если уж человек не хочет утрудить себя в таком простом деле, стоит ли ему "помогать"?
1
ФедосеевПавел
Модератор
3249 / 1859 / 751
Регистрация: 01.02.2015
Сообщений: 6,377
19.02.2018, 08:20 #9
Ну, тут Uncle Remus'у и карты в руки - РЭ с пояснением радианы/градусы, перечень функций, примеры. И сообщение, оформленное справкой по "калькулятору" - будет вынесено в отдельную закреплённую тему.
0
19.02.2018, 08:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.02.2018, 08:20
Привет! Вот еще темы с ответами:

A+b в ассемблере FASM - ввод с клавиатуры и вывод на экран - Assembler
format PE console include 'win32ax.inc' start: mov EAX, 5d mov EBX, 6d ADD EAX, EBX invoke ExitProcess, 0 .end start

Арифметических выражений - C (СИ)
У меня есть пример к которому надо написать программу чтоб его посчитала. Так вот я ее сделал но ответы не совпадают #include &lt;iostream&gt; ...

Парсер арифметических выражений - C++
Добрый вечер, пишу простенький парсер для разбора выражений, содержащих рациональные числа. Вот код: #include &lt;iostream&gt; #include...

Парсинг арифметических выражений - C#
Доброго времени суток. Как можно сделать так что бы вводимый в консоль, ЭУ или читаемый из файла текст выполнялся, например следующего...


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

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

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