Листинг 6.1. Продолжение
;зосстанозление младшего |
полубайта с константой 1 |
||
INXD: |
mov |
tmpl, r4 |
;переслать г4 во зременный регистр |
ldi |
tmp4, |
.•записать константу 1 |
|
add |
tmpl, tmp4 |
;сложение с константой |
|
mov |
r4, tmpl |
;сохранение в г4 |
|
mov |
tmp2, r5 |
;переслать г5 во временный регистр |
|
ldi |
tmp4, content> |
/записать константу 0 |
|
adc |
tmp2, tmp4 |
;сложение с константой с переносом |
|
mov |
r5, tmp2 |
;сохранение в г5 |
|
ret |
|||
;восстановление старшего |
полубайта с константой 1 |
||
INXH: |
mov |
tmpl, r6 |
/переслать г6 во зременный регистр |
ldi |
tmp4, |
/записать константу 1 |
|
add |
tmpl, tmp4 |
;сложение с константой |
|
mov |
гб, tmpl |
;сохранение в гб |
|
mov |
tmp2, rl |
;переслать г7 во зременный регистр |
|
ldi |
tmpl, content> |
;записать константу 0 |
|
adc |
tmp2, tmpl |
;сложение с константой с переносом |
|
mov |
rl, tmp2 |
;сохранение в г7 |
|
ret |
|||
;сброс |
временных регистров |
||
Res : |
nop clr |
tmp |
|
clr |
tmpl |
;сброс tmpl |
|
clr |
tmp2 |
/сброс tmp2 |
|
clr |
tmp3 |
;сброс tmp3 |
|
clr |
tmp4 |
;сброс tmp4 |
|
clr |
prgl |
||
clr |
prg2 |
||
clr |
adr |
||
clr |
dig21 |
||
clr |
dig43 |
||
ret |
|||
;Подпрограмма |
сдзига вправо |
||
righ: |
nop clc |
;сброс флага переноса |
|
ror |
dig43 |
;сдзиг зправо старшего без заема |
|
ror |
dig21 |
;сдзиг зправо младшего с заемом |
|
ret |
|||
;Подпрограмма |
простого преобразования 16-ти разр. Hex-BCD |
||
hexbcd |
nop |
||
clr |
rl2 |
;обнуление регистроз |
|
clr |
rl3 |
;обнуление регистроз |
|
clr |
rl4 |
;обнуление регистроз |
|
clr |
rl5 |
;обнуление регистроз |
|
ldi |
tmp2, content>A |
;делим на 10 |
132
Глава 6
Листинг 6.1. Продолжение
rcall |
delit |
mov |
rl2, гб |
els |
|
clr |
tmp |
mov |
tmp, гб |
cpi |
tmp, content>A |
brlt |
ООО |
rjmp |
gou |
ldi |
tmp2, content>A |
rcall |
delit |
mov |
rl3, гб |
els |
|
clr |
tmp |
mov |
tmp, r6 |
cpi |
tmp, content>A |
brlt |
aoo |
rjmp |
gou |
ldi |
tmp2, content>A |
rcall |
delit |
mov |
rl4, гб |
els |
|
clr |
tmp |
mov |
tmp, гб |
cpi |
tmp, content>A |
brlt |
uoo |
rjmp |
gou |
ldi |
tmp2, content>A |
rcall |
delit |
mov |
rl5, гб |
clr |
tmp |
mov |
tmp, rl5 |
andi |
tmp, content>F |
swap |
tmp |
add |
tmp, rl4 |
mov |
dig4 3, tmp |
clr |
tmp |
mov |
tmp, rl3 |
andi |
tmp, SOF |
swap |
tmp |
add |
tmp, rl2 |
mov |
dig21, tmp |
nop |
|
ret |
;уменьшение в S раз deldes: nop
ldi tmp2,
;подпрограмма деления .•записываем остаток ;сброс флага знака
/изменения регистра ;проверка более 10
;делим на 10 /подпрограмма деления
;обнуление регистра ;проверка более 10
;делим на 10 /подпрограмма деления
;обнуление регистра ;проверка более 10
;делим на 10 .•подпрограмма деления
;выделение разряда ;маска
;перемещение в старший полубайт ;запись младшего полубайта ;запись старшего байта
;выделение разряда ;маска
НА ГЛАВНУЮ | | ЧТО ТАКОЕ PIC ? | | ПРОГРАММАТОР | | ПРОЕКТЫ | | СТАТЬИ | | ССЫЛКИ | | КАРТА САЙТА |