|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
16.04.2013, 23:47 | #1 |
Новичок
Джуниор
Регистрация: 16.04.2013
Сообщений: 2
|
Assembler, особенность операции DIV?
Написал по заданию программу, перевода числа из любой системы счисления в двоичную( на деле пока только 10чная, 8ная и 16я).
Суть проблемы в том, что при делении происходит нечто странное. Изначально написал для малых чисел ( в байтах), там всё работало, за исключением ограниченности в размерах вводимых чисел. Попробовал адаптировать под большие числа, тут то и полезли неведомые мне баги, проходился отладчиком несколько раз, но это не помогло понять, что происходит. А теперь на деле: Вот процедура, в которой и зарыта собака, прошу простить за несуразность её содержимого, в попытках исправлять добавлял костыли, которые, в общем то, не сильно помогли. Код:
В регистре AX частное, в DX остаток. Первый шаг деления пропускаю, ибо он адекватен, начну со второго. Частное от деления 7FF на 2 должно записаться в AX. 1.jpg 86Xjtrodykg.jpg оно туда записывается, но в AH вместо 3h попадает 83h. Откуда?! Я, конечно, могу еще костылей понавставлять и оно может быть и будет адеватно работать, но в чем тут суть? С более мелкими числами работает адекватно, то есть проблема возникает только начиная с некоторого числа. |
17.04.2013, 00:44 | #2 |
Новичок
Джуниор
Регистрация: 16.04.2013
Сообщений: 2
|
осенило, вопрос закрыт
|
17.04.2013, 07:48 | #3 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
Прежде всего в DX следует занести старшую часть числа. Если ее нет - обнулить.
И в процессе деления следить, чтобы DX содержал именно старшую часть делимого, а не остаток от предыдущей операции. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Доделать задачу на assembler - четное число уменьшено в два раза без использования операции деления | hodok93 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 7 | 31.05.2012 14:00 |
Арифметические операции Assembler | Banderas123 | Помощь студентам | 0 | 17.10.2011 21:57 |
Арифметические операции Assembler | aly-lucenko | Помощь студентам | 2 | 25.05.2011 11:06 |
Assembler. Битовые операции. | artemonary | Помощь студентам | 18 | 11.05.2011 12:01 |