Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

IV. Примеры конкретных применений. Преобразование 16-битного двоичного числа в двоично-де­сятичное (BCD) Result xx.xx Возврат из подпро­граммы





call #Hex2bcd

calc over ret


Преобразование 16-битного двоичного числа в двоично-де­сятичное (BCD) Result xx.xx Возврат из подпро­граммы



Mull00


Подпрограмма умножения на ЮС входные данные Result 16 бит и константа 64h (100d) 16 бит на выходе 32 бит переменные htXIOO msw & htXIOO lsw



mov.w #100,IROP1

mpyu

clr.w htXIOO lsw

  clr.w htXIOO msw
macu clr.w IROP2M
L$002 bit.w #1,IROP1
  jz L$01
  add.w Result,htX
  addc.w IROP2M, ht
L$01 rla. w Result
  rlc. w IROP2M
  rrc. w IROP1
  jnz L$002

ret


Загрузить 1-ый множитель

100 в IROP1

Очистить буфер для младшей

части слова

И для старшей

Очистить 2-й множитель

Проверка младшего бита

Если 0, не делать ничего 0_lsw; Если 1, добавить

; Result к произведе-; нию 0 0 msw;

Произведение X 2

Проверка следующего бита Если в carry "1", то завершаем


Divide; Подпрограмма деления 32-битного числа на

; 16-битное

; входные данные 32-бит htXIOO msw & htXIOO

; lsw и 16-битная константа #06, на выходе

; 16-битная переменная DIGIT

clr.w DIGITS; Очистка буфера для нового

; результата mov.w #17,IRBT; Организация цикла





Дата публикования: 2014-11-18; Прочитано: 394 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...