Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
MegaZoi
3 / 0 / 1
Регистрация: 19.02.2012
Сообщений: 9
1

Вычислить значение арифметического выражения

11.04.2012, 13:22. Просмотров 1109. Ответов 8
Метки нет (Все метки)

Вычислить значение арифметического выражения

операнды - байты, вычисления знаковые

Была бы очень признательна если мне хотя бы объяснили суть как делать данное задание.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.04.2012, 13:22
Ответы с готовыми решениями:

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

Вычислить значение выражения A*B-C*D
A*B-C*D почему mul dx выводит результат ax а не в cx, умножив все 4 а не cx,dx...

Вычислить значение выражения
Помогите решыть пожалуйста (8*b+1-c)/(a/2+b*c)

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

Вычислить значение выражения: a/c+b/k
надо посчитать формулу a/c+b/k!!! MASM MODEL small STACK 256 .data a db...

8
Mikl___
Автор FAQ
11892 / 6180 / 572
Регистрация: 11.11.2010
Сообщений: 11,193
11.04.2012, 13:40 2
http://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{{(a+2d)}^{3}}{3b}+\frac{a(d-3{c}^{3})}{b^{2}}=\frac{b(a+2d)^{3}+3a(d-3c^{3})}{3b^{2}}используй команды ADD (сложить), SUB (вычесть), MUL (умножить), DIV (разделить)
1
Charles Kludge
Клюг
7644 / 3159 / 382
Регистрация: 03.05.2011
Сообщений: 8,382
11.04.2012, 13:41 3
Напиши на чистой Сюшке, перегоним в АСМ.
1
MegaZoi
3 / 0 / 1
Регистрация: 19.02.2012
Сообщений: 9
11.04.2012, 17:49  [ТС] 4
Спасибо конечно, но принцип решения задачи я поняла, а вот как это все преобразовать в код - не особо...

Добавлено через 4 часа 7 минут
вот что у меня получилось
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
 
int a, b, c, d, f;
 
int main() { 
    printf("vvedite chislo a ");
    scanf("%d", &a);
    
    printf("vvedite chislo b ");
    scanf("%d", &b);
    
    printf("vvedite chislo c ");
    scanf("%d", &c);
    
    printf("vvedite chislo d ");
    scanf("%d", &d);
    
    f = (b*((a + 2*d)^3)+3*a*(d - 3*((c)^3))/(3*(b^2)));
    printf("f =  %d\n", &f);
    
   
     
    return 0;
}
0
Charles Kludge
Клюг
7644 / 3159 / 382
Регистрация: 03.05.2011
Сообщений: 8,382
11.04.2012, 18:04 5
Лучший ответ Сообщение было отмечено tezaurismosis как решение

Решение

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
;     
;     f = (b*((a + 2*d)^3)+3*a*(d - 3*((c)^3))/(3*(b^2)));
    mov         edx,dword ptr FLAT:c 
    xor         dl,3 
    mov         eax,edx 
    shl         eax,2 
    sub         eax,edx 
    mov         ecx,dword ptr FLAT:d 
    sub         ecx,eax 
    mov         edx,dword ptr FLAT:a 
    mov         eax,edx 
    shl         eax,2 
    sub         eax,edx 
    mov         edx,eax 
    imul        edx,ecx 
    mov         ecx,dword ptr FLAT:b 
    xor         cl,2 
    mov         eax,ecx 
    shl         eax,2 
    sub         eax,ecx 
    mov         ecx,eax 
    mov         eax,edx 
    sar         edx,1fH 
    idiv        ecx 
    mov         edx,dword ptr FLAT:d 
    add         edx,edx 
    add         edx,dword ptr FLAT:a 
    xor         dl,3 
    imul        edx,dword ptr FLAT:b 
    add         edx,eax 
    mov         dword ptr FLAT:f,edx
1
Mikl___
Автор FAQ
11892 / 6180 / 572
Регистрация: 11.11.2010
Сообщений: 11,193
12.04.2012, 05:54 6
Charles Kludge, я, конечно, понимаю, что MegaZoi - блондинка, но на картинке видно, что требуется возводить во вторую и третью степень, а не делать операцию "Исключающее ИЛИ" (хотя знак "^" - возведение в степень в бейсике)
1
MegaZoi
3 / 0 / 1
Регистрация: 19.02.2012
Сообщений: 9
12.04.2012, 10:25  [ТС] 7
Ой, я и забыла про xor, спасибо большое)
0
Charles Kludge
Клюг
7644 / 3159 / 382
Регистрация: 03.05.2011
Сообщений: 8,382
12.04.2012, 11:47 8
Mikl___, это к автору опуса.
При полностью вырубленном оптимайзере:
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
;     
;     f = (a + 2*d);
    mov         eax,dword ptr d 
    add         eax,eax 
    mov         edx,dword ptr a 
    add         edx,eax 
    mov         dword ptr f,edx 
 
;     f = (f * f * f) * b;
    mov         eax,dword ptr f 
    imul        eax,dword ptr f 
    imul        eax,dword ptr f 
    mov         edx,dword ptr b 
    imul        eax,edx 
    mov         dword ptr f,eax 
 
;     f = f + 3*a*(d - 3*(c*c*c));
    mov         eax,dword ptr c 
    imul        eax,dword ptr c 
    imul        eax,dword ptr c 
    lea         eax,[eax+eax*2] 
    mov         edx,dword ptr d 
    sub         edx,eax 
    mov         eax,edx 
    mov         edx,dword ptr a 
    lea         edx,[edx+edx*2] 
    imul        eax,edx 
    add         dword ptr f,eax 
 
;     f = f /(3*(b*b));
    mov         eax,dword ptr b 
    imul        eax,dword ptr b 
    lea         ecx,[eax+eax*2] 
    mov         eax,dword ptr f 
    mov         edx,dword ptr f 
    sar         edx,1fH 
    idiv        ecx 
    mov         dword ptr f,eax
1
MegaZoi
3 / 0 / 1
Регистрация: 19.02.2012
Сообщений: 9
12.04.2012, 12:07  [ТС] 9
Огромное спасибо, что помогли мне!))
0
12.04.2012, 12:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.04.2012, 12:07

Вычислить значение выражения
Привет друзья!!!Прошу вас от сердца помочь сделать программу на tasm.exe,модель...

Вычислить значение выражения
Вопрос! Нужно найти значение выражения z=(sqrt(|x|)-y)^2 Вот кусочек кода:...

Вычислить значение выражения
Всем привет. Помогите написать на ассемблере такое: Вот начал делать, но...


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

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

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