Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
div2 |
div3 div4 |
divl cmp.w #0 6,htX100_msw jlo div2 |
; Сравнить делитель; со старшим словом; делимого
; Если меньше - переход; на div2 sub.w #0 6,htX100_msw; Вычесть б из старше-
rlc.w DIGITS jc div4 dec.w IRBT j z div3 |
; го слова
Сдвинуть результат влево через бит переноса Если в carry "1", то завершаем
Декремент счётчика цикла Если счётчик = 0:завершение
Делимое X 2 |
rla.w htX100_lsw rlc.w htXlOOjnsw jnc divl
Если в carry «0» переход
к divl sub.w #0 6,htX100 msw; Вычесть 6 из старше-
; го слова
setc; Установить carry в «1»
jmp div2; Повтор
clrc; Очистить carry
ret; Возврат из подпрограммы
.^■k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k г
Hex2bcd; Подпрограмма перевода 16-битного шестнадцате
; ричного значения
; DIGITS, в двоично-десятичное (BCD) входные
; данные 1б-бит шестнадцатеричные в выходные
; там же в BCD
г * * * * * -,
mov | #16,r9 |
clr | r8 |
clr | r7 |
rla | DIGITS |
dadd | r7,r7 |
dadd | r8,r8 |
dec | r9 |
jnz | L$l |
mov | r7,DIGITS |
ret |
в R9 число бит Обнулить R8 Обнулить R7
L$l rla DIGITS; Арифметический сдвиг DIGITS
влево
Десятичное сложение source + carry —> destination
Декремент счётчика бит Все 16 бит обработаны? Результат —> DIGITS Возврат из подпрограммы
Дата публикования: 2014-11-18; Прочитано: 299 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!