![]() |
|
|
![]()
|
|
| rezanov |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 25.9.2011 Репутация: нет Всего: нет |
Учебная задача для программирования микропроцессора.
Задача: Поделить отрицательное число, записанное в дополнительном коде и результат записать в регистр. В младшем байте аккумулятора у нас записано число -122. (регистр A=10000110) -122 здесь записано в дополнительном двоичном коде. Получено в результате предыдущей операции. Необходимо разделить на число 6. Оно записано в регистре R4(R4=110) в прямом двоичном коде. -122 / 6 = 20.3333333 В регистр R5 записываем результат Код:
Но результат получается неверный... Как делятся числа в дополнительном коде? Или может быть надо перевести число из дополнительного кода, а потом делить? И куда тогда денется знак числа? Вообщем, как в ассемблере поделить отрицательное число, записанное в 1 байте.(8бит)в дополнительном коде? |
|||
|
||||
| iff |
|
|||
![]() Администратор ![]() ![]() Профиль Группа: Участник Сообщений: 949 Регистрация: 23.3.2007 Репутация: 5 Всего: 16 |
У процессоров семейства x86 есть инструкции DIV и IDIV. Первая работает с беззнаковыми числами, вторая - со знаковыми.
-------------------- DOS... Синей пеленой экран заполнил чистый DOS Мышь... Стала вдруг квадратной, потеряла форму мышь... Я разбил окно, девяностопятое мастдайное окно, И поставил DOS, и тогда увидел: Это счастье, — вот оно. |
|||
|
||||
| Korod |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 24.10.2011 Репутация: нет Всего: нет |
Если в системе команд однокристаллки есть команда NEG, меняющая знак, то надо сделать число положительным, затем разделить, ну а логикой присвоить соответствующий знак результату
|
|||
|
||||
![]()
|
| Правила форума "Asm: Общие вопросы" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Asm: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |