| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Asm: Общие вопросы > деление в дополнительном коде |
| Автор: rezanov 8.10.2011, 21:08 | ||
| Учебная задача для программирования микропроцессора. Задача: Поделить отрицательное число, записанное в дополнительном коде и результат записать в регистр. В младшем байте аккумулятора у нас записано число -122. (регистр A=10000110) -122 здесь записано в дополнительном двоичном коде. Получено в результате предыдущей операции. Необходимо разделить на число 6. Оно записано в регистре R4(R4=110) в прямом двоичном коде. -122 / 6 = 20.3333333 В регистр R5 записываем результат Код:
Но результат получается неверный... Как делятся числа в дополнительном коде? Или может быть надо перевести число из дополнительного кода, а потом делить? И куда тогда денется знак числа? Вообщем, как в ассемблере поделить отрицательное число, записанное в 1 байте.(8бит)в дополнительном коде? |
| Автор: iff 9.10.2011, 16:42 |
| У процессоров семейства x86 есть инструкции DIV и IDIV. Первая работает с беззнаковыми числами, вторая - со знаковыми. |
| Автор: Korod 24.10.2011, 13:15 |
| Если в системе команд однокристаллки есть команда NEG, меняющая знак, то надо сделать число положительным, затем разделить, ну а логикой присвоить соответствующий знак результату |