31 / 21 / 10
Регистрация: 08.10.2017
Сообщений: 181
|
||||||
1 | ||||||
Ошибка при выполнении целочисленных арифметических операций17.12.2017, 11:22. Показов 1278. Ответов 4
Помогите, пожалуйста, с прогой. Пишу простейшую штуку на масме, вот код:
Добавлено через 3 минуты Да, забыл сказать, что тот же ollydbg показал корректное заполнение регистров (в них висят нужные мне числа), то есть 100% ошибка в делении.
0
|
17.12.2017, 11:22 | |
Ответы с готовыми решениями:
4
Какие флаги во флаговом регистре изменились при выполнении арифметических операций и почему? Целочисленных арифметических действий Вычисление целочисленных арифметических выражений Вычисление целочисленных арифметических выражений |
Модератор
|
|
17.12.2017, 21:58 | 2 |
0
|
31 / 21 / 10
Регистрация: 08.10.2017
Сообщений: 181
|
|
17.12.2017, 22:07 [ТС] | 3 |
0
|
Модератор
|
|
17.12.2017, 22:16 | 4 |
Сообщение было отмечено Slepoyi как решение
Решение
Если почитать статью о делении по ссылке, становится понятным, что
div ebx выполняет деление 64-разрядного числа в регистровой паре edx:eax на ebx Поэтому, если нужно разделить неотрицательное 32-разрядное число в eax то обнуляют edx. Если делят знаковое число в eax, то "расширяют" eax до 64 разрядов при помощи команды cdq , а деление выполняют командой idiv
1
|
31 / 21 / 10
Регистрация: 08.10.2017
Сообщений: 181
|
|
17.12.2017, 22:38 [ТС] | 5 |
Спасибо огромное, можно закрывать
0
|
17.12.2017, 22:38 | |
17.12.2017, 22:38 | |
Помогаю со студенческими работами здесь
5
Исследование арифметических операций Использование арифметических операций Выполнение арифметических и логических операций Реализация простейших арифметических операций Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |