![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!