Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.03.2022, 21:48   #1
максхи
Пользователь
 
Регистрация: 20.12.2021
Сообщений: 59
По умолчанию Деление и умножение со знаком imul idiv

Пишу программу в masm32, нужно получить результат (x^3-y)/(12y)
Код:
mov eax, [xx]
mov ebx, [xx]
imul bx
imul bx
sub eax, [yy]
mov ecx, eax
mov eax, 12
mov ebx, [yy]
imul ebx
xchg eax,ecx
mov edx, 0
idiv (e)cx     ; -6/-24
При переводе из строки в число когда я умножал два байта у меня выходило отрицательное двубайтовое число но положительное четырёхбайтовое, хотя везде написано, что результат записывается в регистр на размер больше.
Я поменял размер знака, но следующую проблему решить не получается.
Когда я ввожу -2 и -2, перед делением в eax -6, в ecx -12, что верно, но после деления на cx -2730, ecx -178956970, что то , что другое -- абсолютно неверно.
Так как поделить отрицательные числа?
максхи вне форума Ответить с цитированием
Старый 11.03.2022, 21:50   #2
максхи
Пользователь
 
Регистрация: 20.12.2021
Сообщений: 59
По умолчанию

Все, понял, там DX:AX делится, я думал, EAX.
Жаль программа всё-равно не работает с отрицательными нормально.
максхи вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Умножение и деление Shouldercannon Общие вопросы Delphi 5 26.12.2017 20:49
Деление, умножение, суммирование OldStile Помощь студентам 0 22.03.2015 00:05
Умножение и деление danil123 Общие вопросы Delphi 7 03.02.2013 13:41
ВЫчитание, умножение и деление массивов на С++ Flood Помощь студентам 2 15.05.2010 16:54
Умножение и деление StiTch_Parazit Помощь студентам 10 20.05.2008 14:32