Форум программистов, компьютерный форум, киберфорум
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/70: Рейтинг темы: голосов - 70, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 06.08.2011
Сообщений: 34
1

Арифметические операции. X=a-5(B-2C)+2

06.09.2011, 22:13. Показов 13871. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Недавно начал изучать ассемблер. Нужно вычислить формулу X=a-5(B-2C)+2.
Посмотрите, верно ли я её описал:

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
dataseg                  ; 
a dw 9           ;
b dw 7           ;
c dw 8           
x dw ?               ; 
 
codeseg                  ; 
  start:                 ; 
       
    startupcode          ; 
mov bx, c
add bx, c    ; 2C
mov ax, b    ;B
sub ax, bx     ; B-2C
mov bx, 5
imul bx
mov cx, a
sub cx, ax
add ax, 2
mov x, ax
Заранее спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.09.2011, 22:13
Ответы с готовыми решениями:

Арифметические операции.
((a-2*c)>=0)?(((d-c)<0)?(-(a-2*c)/d+(a-b)/8/(((c*c)%d)-abs(a*2)))/(+d+a-b*c) реализовать...

Арифметические операции с матрицами
Помогите реализовать умножение, сложение матриц на ассемблере! Матрицы заданы массивами *. Всё что...

Арифметические операции, исправить код
Подскажите, в чём ошибка? И как получить правильный результат? a + ab – e/c = 1 + 1*21 - 1994/2801...

Арифметические операции над строками и символами.
1. Написать программу на языке программирования Assembler процессора х86 для вычисления значения...

7
Хочу в Исландию
1041 / 840 / 119
Регистрация: 10.11.2010
Сообщений: 1,630
06.09.2011, 22:57 2
Между 18 и 19 строками не хватает вот этого:
Assembler
1
mov ax,cx
, а так всё правильно.
1
0 / 0 / 0
Регистрация: 06.08.2011
Сообщений: 34
07.09.2011, 09:12  [ТС] 3
То есть результат вычитания сохранился в регистре cx?
0
0 / 0 / 0
Регистрация: 06.08.2011
Сообщений: 34
07.09.2011, 16:53  [ТС] 4
А как можно поставить задержку экрана, чтобы при запуске экзешника, прога оставалась на экране?

И как можно в дебагере просмотреть конечный результат работы программы?

Мой пример программы в дебагере:

Заранее спасибо!
Миниатюры
Арифметические операции. X=a-5(B-2C)+2  
0
Хочу в Исландию
1041 / 840 / 119
Регистрация: 10.11.2010
Сообщений: 1,630
07.09.2011, 18:19 5
Цитата Сообщение от Vnuuk Посмотреть сообщение
То есть результат вычитания сохранился в регистре cx?
Да, в 18 строке из cx вычитаешь 5(B-2C), а потом двойку добавляешь к ax...

Добавлено через 6 минут
Цитата Сообщение от Vnuuk Посмотреть сообщение
А как можно поставить задержку экрана, чтобы при запуске экзешника, прога оставалась на экране?
Запусти в cmd екзешник... правда ничего не увидишь, программа ведь ничего не выводит.
Цитата Сообщение от Vnuuk Посмотреть сообщение
И как можно в дебагере просмотреть конечный результат работы программы?
Дойди в отладчике до строки перед int 21 и пришли то что ты видишь на экране. Я пользуюсь другим отладчиком, поэтому не берусь предполагать что будет видно в TD.
0
0 / 0 / 0
Регистрация: 06.08.2011
Сообщений: 34
07.09.2011, 22:11  [ТС] 6
Вот вроде как считает не верно) Вроде конечный результат должен быть "56"
А в отладчике "38"..
Миниатюры
Арифметические операции. X=a-5(B-2C)+2  
0
0 / 0 / 0
Регистрация: 06.08.2011
Сообщений: 34
07.09.2011, 22:16  [ТС] 7
А! Там ведь шестнадцатеричная! 38_16 = 56_10
0
slavan2000
28.09.2011, 23:23 8
Народ, помогите пожалуйста! Только начал изучать ассемблер, препод дал методу и всё, говорит мол сами разбирайтесь. Так, первая лаба как раз нужно решить вот такой же пример, но только подставить нужно вместо А В С такие числа, чтобы ответ был сначала положительный, потом при других значениях должен получиться ноль и при третьих какое-то отрицательное число. С положительным ответом проблем нет, а вот с отрицательным не работает, пишет ответ 65000 с копейками, что ваш вариант, что я сам написал. Помогите пожалуйста что нужно изменить, чтобы начал считать нормально? Заранее благодарен!!!
28.09.2011, 23:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.09.2011, 23:23
Помогаю со студенческими работами здесь

Арифметические операции и ошибка деления на ноль
програма вычисляет выражение Х = (((a-b)*(c-d))/k)+10 текст програми в паскале Program eee;...

Арифметические операции выполняются с ошибкой в вычислениях
.model small .186 .stack 100h .data a db 254 b db 254 c db 254 d db 254 f dd ? .code

Как корректно произвести арифметические операции
Здравствуйте. Нужно задать на масме формулу (a+1)/(a-1) + c*d. Деление я допустим сделал. Для...

Арифметические операции над небольшими целыми числами в процессоре SPARC
Здравствуйте, форумчане! Есть ли среди вас знатоки архитектуры SPARC? Если да, то просветите...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru