Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

в чём ошибка? //прога с idiv

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Прочее] >> в чём ошибка? //прога с idiv
Имя
Сообщение << Старые топики   Новые топики >>
в чём ошибка? //прога с idiv - 2007-04-10 12:22:12.430000   
kb33

Сообщений: 46
Оценки: 0
Присоединился: 2007-04-03 10:06:11.443333
вот такая программа:
PUSHad
xor eax,eax
mov eax,n
xor ecx,ecx
mov ecx,m
xor edx,edx
idiv ecx
mov result,eax
POPad
Она не работает: ввожу значения -22 и 2, а получается максимальное значение регистра, причём с imul у меня всё получилось.
Подскажите, в чём ошибка?
Post #: 1
RE: в чём ошибка? //прога с idiv - 2007-05-23 14:16:20.726666   
Andrey1.1

Сообщений: 86
Оценки: 0
Присоединился: 2004-12-01 18:42:36
Вся хрень в том, что делимое не может быть отрицательным(короче - тонкость языка).
Короче, вот правильный код:
{ saving registers } PUSHAD { assigning values } mov eax, n mov ecx, m { negative check!!! } cmp eax, 0 jnb @@1 neg eax neg ecx { dividing } @@1: idiv ecx { saving result } mov result, ecx { restoring registers } POPAD
Post #: 2
RE: в чём ошибка? //прога с idiv - 2007-05-26 12:03:30.046666   
St0rcrafter

Сообщений: 78
Оценки: 0
Присоединился: 2007-05-21 20:36:10.756666
вопрос : зачем обнулять регистры, если мы все равно будем в них записывать?
Post #: 3
RE: в чём ошибка? //прога с idiv - 2007-05-28 12:23:28.816666   
Andrey1.1

Сообщений: 86
Оценки: 0
Присоединился: 2004-12-01 18:42:36
ну ладно, щас исправлю…
Post #: 4
Страниц:  [1]
Все форумы >> [Прочее] >> в чём ошибка? //прога с idiv







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.