Поиск:

Ответ в темуСоздание новой темы Создание опроса
> деление в дополнительном коде, FASM 907S 
:(
    Опции темы
rezanov
  Дата 8.10.2011, 21:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 25.9.2011

Репутация: нет
Всего: нет



Учебная задача для программирования микропроцессора.

Задача:  Поделить отрицательное число, записанное в дополнительном коде и результат записать в регистр.
В младшем байте аккумулятора у нас записано число -122.  (регистр A=10000110) -122 здесь записано в дополнительном двоичном коде. Получено в результате предыдущей операции. Необходимо разделить на число 6. Оно записано в регистре R4(R4=110) в прямом двоичном коде.  
-122 / 6 = 20.3333333
В регистр R5 записываем результат

Код:

Код

    DIV A,R4
    MOV R5,A


Но результат получается неверный... Как делятся числа в дополнительном коде? Или может быть надо перевести число из дополнительного кода, а потом делить? И куда тогда денется знак числа? Вообщем, как в ассемблере поделить отрицательное число, записанное в 1 байте.(8бит)в дополнительном коде?
 smile 
PM MAIL   Вверх
iff
Дата 9.10.2011, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Администратор
**


Профиль
Группа: Участник
Сообщений: 949
Регистрация: 23.3.2007

Репутация: 5
Всего: 16



У процессоров семейства x86 есть инструкции DIV и IDIV. Первая работает с беззнаковыми числами, вторая - со знаковыми.


--------------------
DOS... Синей пеленой экран заполнил чистый DOS 
Мышь... Стала вдруг квадратной, потеряла форму мышь... 
Я разбил окно, девяностопятое мастдайное окно, 
И поставил DOS, и тогда увидел: Это счастье, — вот оно.  
PM MAIL WWW   Вверх
Korod
Дата 24.10.2011, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 24.10.2011

Репутация: нет
Всего: нет



Если в системе команд однокристаллки есть команда NEG, меняющая знак, то надо сделать число положительным, затем разделить, ну а логикой присвоить соответствующий знак результату
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0397 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.