![]() |
|
![]() ![]() ![]() |
|
Tiglon |
|
||||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 1.12.2011 Репутация: нет Всего: нет |
Доброго времени суток.
Мое задание состоит в том что бы вывести следующий високосный год от текущего. Вот к чему я пришел
Так как мы с преподавателем дошли до согласия что для проверки високосный год или нет достаточно поделить его на 4. Если делиться без остатка он високосный. Поэтому решил использовать команду div. Но возникла вот какая проблема. Вот в этой части кода.
Результат мне выдавало 2004 или 2018. Когда я проверял на дебаггере почему так я заметил что в регистре bx у мена находится не 4 как мне нужно а 2004 так как сначала я в него заношу текущий год. Сначала я решил обнулить регистр bx перед записью в него числа 4 на что мне выдало Divide overflow. Проверяя на дебаггере я увидил что все работает правильно но не понял причины переполнения. После решил по отдельности записать в bh 00 а в bl 04 на что получил тот же результат. Объясните пожалуйста почему так ? Почему я не могу выполнить деление ? Заранее очень благодарю за помощь. |
||||
|
|||||
586 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 2 Всего: 146 |
Обнули ещё регистр DX. Или вместо команды DIV BX используй команду DIV BL, тогда регистр DX не нужно будет обнулять. У команды DIV BX в качестве делимого используются регистры DX:AX. В результате деления, частное заносится в регистр AX, а остаток в DX. У команды DIV BL в качестве делимого используется регистр AX. В результате деления, частное заносится в регистр AL, а остаток в регистр AH. Это сообщение отредактировал(а) 586 - 1.4.2013, 21:19 |
|||
|
||||
Tiglon |
|
||||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 1.12.2011 Репутация: нет Всего: нет |
Все дело в том что когда я использую bl то пишет Divide overflow. А вот если использовать bx то выдает результат 2018. |
||||
|
|||||
586 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 2 Всего: 146 |
При таком числе - да. Используй команду DIV BX. Остаток будет в регистре DX. Это сообщение отредактировал(а) 586 - 1.4.2013, 21:56 |
|||
|
||||
Tiglon |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 1.12.2011 Репутация: нет Всего: нет |
||||
|
||||
![]() ![]() ![]() |
Правила форума "Asm для начинающих" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Asm для начинающих | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |