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

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

20.08.2016, 12:10. Просмотров 986. Ответов 4
Метки нет (Все метки)

Добрый день! Подскажите как записать этот пример в ассемблер?
http://www.cyberforum.ru/cgi-bin/latex.cgi?X=\frac{({A}^{2}+D)}{C-B}
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.08.2016, 12:10
Ответы с готовыми решениями:

Вычисление значения выражения: (3*c-2*d)/(a)
Помогите пожалуйста, вычислить (3*c-2*d)/(a).

Вычисление значения выражения y=(2*c-d+23)/(a/4-1)
Ребята, помогите, пожалуйста, найти ошибку в программе, которая вычисляет значение выражения...

Вычисление значения выражения (А/2 – В) – 2*(С + 1) (masm)
Вот пример выражения (А – В) *2 + С – 1, где А, В, С - целые знаковые числа. А мне нужно (А/2 –...

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

Вычисление значения математического выражения
Можете написать код для вычисления следующего выражения: y = y1 - y2 , если: 1) y1 =...

4
Kukuxumushu
1849 / 632 / 119
Регистрация: 13.06.2015
Сообщений: 2,158
Завершенные тесты: 2
20.08.2016, 12:42 2
Цитата Сообщение от Янки19 Посмотреть сообщение
Подскажите
Для начала определиться с размером и знаковостью данных, а также что делать в случае переполнения при делении.
0
Янки19
21 / 1 / 0
Регистрация: 09.11.2013
Сообщений: 68
20.08.2016, 12:46  [ТС] 3
Это не то?
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
;Program_4 _ Арифметические операции
Data SEGMENT
A  DB  15
B  DB  150h
C  DB  5
D  DB  4
X  DW  ?
Data ENDS
Ourstack SEGMENT Stack
DB 100h DUP (?)
Ourstack ENDS
ASSUME CS:Code, DS:Data, SS:Ourstack
Code SEGMENT
Start:    mov  AX, Data
mov  DS, AX
xor  AX, AX
 
----
 
mov AX, 4C00h
int 21h
Code ENDS
END Start
0
MansMI
1452 / 1161 / 550
Регистрация: 08.01.2012
Сообщений: 4,509
21.08.2016, 08:04 4
B DB 150h совсем не то, если все DB заменить на DW
Assembler
1
2
3
4
5
6
7
8
9
10
.......
mov ax,A
imul ax
add ax,D
mov bx,C
sub bx,B
xor dx,dx
idiv bx
mov X,ax
.......
вроде так
0
Андрей_75
42 / 41 / 5
Регистрация: 22.06.2011
Сообщений: 71
21.08.2016, 08:16 5
Лучший ответ Сообщение было отмечено tezaurismosis как решение

Решение

Директива DB (Define Byte) определяет область памяти размером один байт и инициализирует его значением стоящим справа от нее. В байте содержится 8 бит. Поэтому максимальное беззнаковое значение, которое ты там сможешь записать: 1111_1111b (в двоичной системе счисления)=FFh (в шестнадцатеричной системе счисления)=255 (в десятичной системе счисления)
Поэтому строка
Assembler
1
B  DB  150h
будет помечена транслятором как ошибочная. Ниже пример программы с измененными исходными данными, чтобы промежуточные результаты не выходили за пределы разрядной сетки и не получался бы отрицательный результат при вычитании в знаменателе дроби.
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
Data SEGMENT
A  DB  15
B  DB  5
C  DB  150
D  DB  4
X  DW  ?
Data ENDS
Ourstack SEGMENT Stack
DB 100h DUP (?)
Ourstack ENDS
ASSUME CS:Code, DS:Data, SS:Ourstack
Code SEGMENT
Start:    mov  AX, Data
    mov  DS, AX
    xor  AX, AX
    
    mov al,A
    mul al; al*al, т.е. в al будет A*A=15*15=225
    add al,D; в al будет A*A+D, т.е. 225+4=229 
    mov cl,C
    sub cl,B; в cl будет С-B, т.е. 150-5=145 
    div cl; в al результат целочисленного деления (ax)/(cl), т.е. 229 div 145=1 
          ; а в ah остаток от целочисленного деления (ax)/(cl), т.е. 229 mod 145=84
  
    mov AX, 4C00h
    int 21h
Code ENDS
END Start
1
21.08.2016, 08:16
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.08.2016, 08:16

Вычисление значения арифметического выражения (tasm)
Всем здравствуйте,помогите пожалуйста составить программу, вычисляющую значение арифметического...

Вычисление значения выражения по вводимым числам
Срочно нужно написать программу для расчета Х, ввод чисел а,b,c с клавиатуры. Выводить Х, включая...

Вычисление значения выражения: (5674 / 4 + 337 / 3 + 235 / 5 ) * 2
помогите решить пример (5674 / 4 + 337 / 3 + 235 / 5 ) * 2 и вывести результат в окно


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

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

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