![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
|

| 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; Прочитано: 319 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!
