Форум программистов, компьютерный форум, киберфорум
Assembler: математика, вычисления
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
1 / 1 / 1
Регистрация: 28.11.2014
Сообщений: 46

Проверьте код на вычисление выражения

04.03.2015, 15:06. Показов 753. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
Помогите, пожалуйста, разобраться.
Даны числа
A=1, B=0, D=0.
Вычислить Х=(A+B)(B-1)/(D+8).
Вот код:
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
; Template for console application
         .586
         .MODEL flat, stdcall
         OPTION CASEMAP:NONE
Include kernel32.inc
Include masm32.inc
Includelib kernel32.lib
Includelib masm32.lib
         .CONST
MsgExit  DB     13,10,"Press Enter to Exit",0AH,0DH,0
         .DATA
B        SWORD 0
D        SWORD 0
X        SWORD ?
fx       SWORD 0    ; стар
Zapros   DB    13,10,'Input A',13,10,0
Result   DB    'Result='
ResStr   DB    16 DUP (' '),0
         .Data?
A        SWORD ?
fA       SWORD ?  
Buffer   DB    10 DUP (?)
inbuf    DB    100 DUP (?)
         .CODE
Start:   Invoke StdOut,ADDR Zapros
         Invoke StdIn,ADDR Buffer, LengthOf Buffer
         Invoke StripLF,ADDR Buffer
         
         Invoke  atol,ADDR Buffer ;
         mov    DWORD PTR A,EAX
 
         mov    CX,D
         add    CX,8 ; Cx=D+8
         mov    BX,B
         dec    BX ; BX:=B-1
         mov    AX,A
         add    AX,B;AX=A+B
         imul   BX  ; BX:AX:=(A+B)*(B-1)
         idiv   CX  ; AX:=(BX:AX):CX
         mov    X,AX
         ;
         Invoke dwtoa,X,ADDR ResStr
         ;
         Invoke StdOut,ADDR Result
         xor    EAX,EAX
         Invoke StdOut,ADDR MsgExit
         Invoke StdIn,ADDR inbuf,Lengthof inbuf
         Invoke ExitProcess,0
         End    Start
Но при данных числах он выводит 7, а у меня на листочке получается -6/8.
В чем ошибка?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.03.2015, 15:06
Ответы с готовыми решениями:

Вычисление выражения - разобрать код
Вот код проги на С++: #include <iostream.h> using namespace std; int main(): double Total=0; for...

Неверное вычисление выражения: проверьте код на наличие ошибок
program z1; var y,x,z: integer; begin writeln ('x '); readln (x); writeln ('x '); readln (y); z:=2; if x>0 then writeln (z)...

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

1
23 / 13 / 47
Регистрация: 23.03.2013
Сообщений: 157
16.07.2015, 17:19
интересно, а как у вас на листочке получаеться -6/8, результат же -1/8. Чтобы работать с вещественными числами в ассемблере нужно пользоваться мат. сопроцессором. А результат получается так. После декремента bx в нем находиться FFFFh, дале мы это число умножаем на 1, так как аргументом операции imul есть слово, то результат помещаеться в dx:ax, далее мы выполняем деление на 8, и получаеться в аx в нас частное, а в dx - остаток от деление(так как целочисленное деление). Остаток всегда имеет знак делимого. Знак частного зависит от состояния знаковых битов (старших разрядов) делимого и делителя.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.07.2015, 17:19
Помогаю со студенческими работами здесь

Вычисление произведения ряда (проверьте код)
Помогите с решением для заданного натурального K и действительного X подсчитать выражение P=\prod_{n=1}^{k}\left(1+\frac{\left(-1...

Найти значение выражения. Пожалуйста, проверьте код
Составьте программу для данного уравнения: Y=\frac{x^2+\ln(x^3+3)}{\left(\frac{x}{a} \right)^2+e^{-x}} Составил, проверьте...

Найти значение выражения. Пожалуйста проверьте код
Составьте разветвляющую программу Y=\begin{cases} e^{x^2+2x+1} & \text{, } x<0 \\\\ x^2+3 & \text{, } x=2 \\\\ \frac{2}{x^3+c}...

Вычисление выражения: подробно разобрать код
Напишите что делает каждая программа по строчно хотябы одну все не прошу var x,y:integer; begin writeln ('vvedite x'); readln...

Вычисление суммы выражения - исправить код
Вариант 11. Не могу понять, как правильно задать всё это, чтобы вычитало, постоянно ошибки какие-то при отладке возникают. Сначала...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru