в чём ошибка? //прога с idiv
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
в чём ошибка? //прога с 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 у меня всё получилось. Подскажите, в чём ошибка?
|
|
|
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
|
|
|
RE: в чём ошибка? //прога с idiv - 2007-05-26 12:03:30.046666
|
|
|
St0rcrafter
Сообщений: 78
Оценки: 0
Присоединился: 2007-05-21 20:36:10.756666
|
вопрос : зачем обнулять регистры, если мы все равно будем в них записывать?
|
|
|
RE: в чём ошибка? //прога с idiv - 2007-05-28 12:23:28.816666
|
|
|
Andrey1.1
Сообщений: 86
Оценки: 0
Присоединился: 2004-12-01 18:42:36
|
ну ладно, щас исправлю…
|
|
|
|
|