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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.12.2010, 08:15   #1
El_Blasto
Новичок
Джуниор
 
Регистрация: 14.12.2010
Сообщений: 4
По умолчанию Ошибка деления на ноль

В регисте ax храним 1FC0- 8128 и делим его на bh в котором храним 02 те 2 , но дебаггер ругается и говорит деление на ноль, отчего же так?
El_Blasto вне форума Ответить с цитированием
Старый 16.12.2010, 08:30   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А регистр DX ты обнулил?
Код:
 xor edx,edx
 mov ax,1FC0h
 mov bx,2
 div bx
И что это такое?
Цитата:
1FC0- 8128
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.12.2010, 08:36   #3
El_Blasto
Новичок
Джуниор
 
Регистрация: 14.12.2010
Сообщений: 4
По умолчанию

ну там храниться 1FC0 это 8128 в десятичном, просто расшифровал))Да, с DX все нормально, просто вот в чем вся загвоздка, если в AX храниться 28 или там 354, то все работает нормально, а если храним 4-х значтое число будь то 1000 и больше то говорит деление на ноль
El_Blasto вне форума Ответить с цитированием
Старый 16.12.2010, 09:39   #4
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

El_Blasto
если 1FC0h (8128) разделить на bh=2 то получится 0FE0h (4064) это число больше 255 и поэтому не влазит в регистр AL здесь нужно сделать DX=0 AX=1FC0h и ВХ=2 и использовать команду DIV BX. Вообще для деления на степень двойки используй сдвиги, т.е. MOV AX,1FC0h / SHR AX,1; AX=0FE0h и никакого "деления на 0"
Mikl___ вне форума Ответить с цитированием
Старый 16.12.2010, 10:09   #5
El_Blasto
Новичок
Джуниор
 
Регистрация: 14.12.2010
Сообщений: 4
По умолчанию

ооо спасибо большое за объяснение, а сдвиг я и так использую по ходу дела))кстати сдвигом и правда гораздо лучше здесь))
El_Blasto вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi, ошибка деления на ноль, хотя знаменатель не ноль Эренка Помощь студентам 7 22.04.2010 15:56
Протаюулировать функцию без деления на ноль tohkaRu Фриланс 3 18.03.2010 19:33
Ошибка деления на ноль nolz Помощь студентам 3 07.03.2010 13:14
Игра,угадай задуманное число,Ошибка деления на ноль!!! Rid Помощь студентам 4 22.10.2009 21:12
Проверка деления на ноль (Как проверить?) Moonka Помощь студентам 10 23.04.2007 19:41