Форум программистов, компьютерный форум, киберфорум
Assembler: математика, вычисления
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 26.10.2016
Сообщений: 70

Вычисление значения выражения

31.10.2016, 20:19. Показов 1134. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребят, помогите с кодом, нужно написать программу на Ассеблере которая будет решать это выражение
Название: 1111111111111111111111111.png
Просмотров: 82

Размер: 2.0 Кб
Если значения равны
a=12
b=-6
c=13
d=-7

Заранее спасибо
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.10.2016, 20:19
Ответы с готовыми решениями:

Вычисление значения выражения (Assembler) a=a*(a+b/4)/(k-1)
Помогите решить! С Assembler-ом недавно связался, ещё не понимаю что к чему.. Нужно разработать программу, вычисляющую заданное выражение...

Вычисление значения выражения (tasm)
y=49/7+42/6+6*2/8*5/9-4*6+23+12/26-4*5 Начало код программы: data segment y db 0 data ends st segment stack ‘stack’ db 128...

Вычисление значения выражения Y=A&B-(C+7)
помогите написать программу на вычисление выражения Y=A&B-(C+7),есть написанная но в ней ошибки,помогите их найти и исправить Ideal ...

10
0 / 0 / 0
Регистрация: 26.10.2016
Сообщений: 70
31.10.2016, 23:25  [ТС]
UP!
0
 Аватар для ture
553 / 361 / 206
Регистрация: 27.11.2014
Сообщений: 1,049
01.11.2016, 07:37
Целые числа?
0
0 / 0 / 0
Регистрация: 26.10.2016
Сообщений: 70
01.11.2016, 10:14  [ТС]
ture, Да, вот какой ответ должен получится
Миниатюры
Вычисление значения выражения  
0
0 / 0 / 0
Регистрация: 26.10.2016
Сообщений: 70
01.11.2016, 10:56  [ТС]
ture, или может даже не целые числа, просто сказали написать, что бы решало этот пример
0
 Аватар для ture
553 / 361 / 206
Регистрация: 27.11.2014
Сообщений: 1,049
01.11.2016, 15:12
....минутку, забыл про 9-ку

Добавлено через 9 минут
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
    .model flat
    .data
; все исходные данные целые
a_  dq 12
b_  dq -6
c_  dq 13
d_  dq -7
 
res dq ?
    .code
main proc
    fild a_           ; загружаем в регистр FPU (целое становится вещественным)
    fmul st(0), st(0) ; a*a
 
    fild c_           ; загружаем в регистр FPU (целое становится вещественным)
    fmul st(0), st(0) ; c*c
    
    fmul st(1), st(0) ; (a*a)*(c*c) - знаменатель на дне стека
 
    fild b_           ; загружаем в регистр FPU (целое становится вещественным)
    fmul st(0), st(0) ; b*b
 
    fmul st(1), st(0) ; (c*c)*(b*b) - второе слагаемое (следом за знаменталелем в стеке)
    
    fild d_           ; загружаем в регистр FPU (целое становится вещественным)
    fmul st(0), st(0) ; d*d
 
    fmulp             ; (b*b)*(d*d) - первое слагаемое (на вершине стека)
    
    fsubp             ; (c*c)*(b*b)-(b*b)*(d*d) (в стеке только числитель и знаменатель)
    fxch              ; меняем их местами
    fdivp             ; ((c*c)*(b*b)-(b*b)*(d*d))/((a*a)*(c*c))  (в стеке только ответ)
    
    and dword ptr a_, 0   ; замута с добавлением 9 (т.к. на 32 битах)
    and dword ptr a_+4, 0
    mov byte ptr a_, 9         
    fild a_
    faddp 
 
    fstp res          ; вынимаем результат как длинное вещественное число
    
    xor ax, ax
    ret
main endp
end
0
0 / 0 / 0
Регистрация: 26.10.2016
Сообщений: 70
01.11.2016, 15:43  [ТС]
ture, Извините за наглость, учитель требует написать эту программу по такому такому шаблону как во вложении сделать, можете помочь пожалуйста?
Вложения
Тип файла: rar lr2.rar (1.2 Кб, 8 просмотров)
0
 Аватар для ture
553 / 361 / 206
Регистрация: 27.11.2014
Сообщений: 1,049
01.11.2016, 16:30
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
    .model compact
    
; сегмент стека 
s_seg   segment
    db 128 dup(?)
s_seg   ends
 
; сегмент данных
d_seg   segment
    ; все исходные данные целые
    a_  dq 12
    b_  dq -6
    c_  dq 13
    d_  dq -7  
    res dq ?
d_seg   ends
    
; сегмент кода
c_seg   segment 'code'
    ; связываем метки с сегментами
    assume ds:d_seg, ss:s_seg, cs:c_seg
main:
    ; устанавливаем сегментные регистры на адреса сагментов
    mov ax, s_seg
    mov ss, ax
    mov ax, d_seg
    mov ds, ax
    
    fild a_           ; загружаем в регистр FPU (целое становится вещественным)
    fmul st(0), st(0) ; a*a
 
    fild c_           ; загружаем в регистр FPU (целое становится вещественным)
    fmul st(0), st(0) ; c*c
    
    fmul st(1), st(0) ; (a*a)*(c*c) - знаменатель на дне стека
 
    fild b_           ; загружаем в регистр FPU (целое становится вещественным)
    fmul st(0), st(0) ; b*b
 
    fmul st(1), st(0) ; (c*c)*(b*b) - второе слагаемое (следом за знаменталелем в стеке)
    
    fild d_           ; загружаем в регистр FPU (целое становится вещественным)
    fmul st(0), st(0) ; d*d
 
    fmulp st(1), st(0); (b*b)*(d*d) - первое слагаемое (на вершине стека)
    
    fsubp st(1),st(0) ; (c*c)*(b*b)-(b*b)*(d*d) (в стеке только числитель и знаменатель)
    fdivrp st(1),st(0); ((c*c)*(b*b)-(b*b)*(d*d))/((a*a)*(c*c))  (в стеке только ответ)
    
    and word ptr a_   , 0   ; замута с добавлением 9 (т.к. на 16 битах)
    and word ptr a_[2], 0
    and word ptr a_[4], 0
    and word ptr a_[8], 0
    mov byte ptr a_, 9         
    fild a_
    faddp  st(1),st(0) 
 
    fstp res          ; вынимаем результат как длинное вещественное число
    
    ; завершение программы
    mov ax, 4C00h
    int 21h
c_seg   ends
end main  ; имя метки входа
0
0 / 0 / 0
Регистрация: 26.10.2016
Сообщений: 70
01.11.2016, 19:21  [ТС]
ture, Учитель опять придрался, сказал, что мол нужно точь в точь по такой же схеме как во вложении, идентично как в lr2.asm, только с моим примером, с mov, idiv, и т.д. Не слишком мудрено, сильно в напряг для вас будет помочь, моей благодарности не будет границ

Добавлено через 1 час 47 минут
ture, Учитель опять придрался, сказал, что мол нужно точь в точь по такой же схеме как во вложении, идентично как в lr2.asm, только с моим примером, с mov, idiv, и т.д. Не слишком мудрено, т.к то, что написали вы, мы такого не изучали и он не принимает, последний день, что бы сдать ему эту работу, сильно в напряг для вас будет помочь???, моей благодарности не будет границ.Заранее спасибо
0
Terminator of naked apes
 Аватар для KyberMax
832 / 139 / 34
Регистрация: 13.02.2015
Сообщений: 328
02.11.2016, 23:15
Ощи, Святое Кенгуру, вот это ВНЕЗАПНОЕ уточнение, когда почти всё сделано - sahafarik, зачёт, например ;о)

ture, чем дело-то кончилось, например? ;о)

Кстате, што ето у тебя за "замута" такая
Цитата Сообщение от ture Посмотреть сообщение
Assembler
1
2
3
4
5
6
7
      and word ptr a_ , 0 ; замута с добавлением 9 (т.к. на 16 битах)
      and word ptr a_[2], 0
      and word ptr a_[4], 0
      and word ptr a_[8], 0
      mov byte ptr a_, 9
      fild a_
      faddp st(1),st(0)
Почему бы не сделать вместо всей этой феерии как-то так, например:
Assembler
1
      FIADD w9
а константы вообще достаточно было описать как слова, например:
Assembler
1
2
3
4
5
a_    DW    12
b_    DW    -6
c_    DW    13
d_    DW    -7
w9    DW    9
Как-то так, например ;о)
1
 Аватар для ture
553 / 361 / 206
Регистрация: 27.11.2014
Сообщений: 1,049
03.11.2016, 11:38
KyberMax, чем кончилось? - Я не знаю, как там с преподом вышло дальше.
Замута, потому что я тему прочитал первый и через два часа писал этот код. Вообще думал, что в эти регистры можно только из памяти читать (чему был неслыханно удивлен).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.11.2016, 11:38
Помогаю со студенческими работами здесь

Вычисление значения выражения: lg (корень х + x^2+0.165)
Помогите пожалуйста, вычислить lg (sqrt(х) + x^2+0.165) ???

Вычисление значения выражения с использованием арифметических команд
Проще говоря, вычислить вот это выражение на ассемблере a * (3 + b) – 2 * (c + d) Сам в ассемблере не шарю, так как сам программирую...

Вычисление значения выражения (результат не выводится на экран)
Нада написать код программы вычисления примера f=(5x+7)/(zy+1) если x=3 y=5 z=6 .model tiny .stack 100h .data asd db 10,'$' x...

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

Вычисление значения выражения
Добрый день! Подскажите как записать этот пример в ассемблер? X=\frac{({A}^{2}+D)}{C-B}


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru