Предыдущая Следующая

Листинг 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 ? | ПРОГРАММАТОР | ПРОЕКТЫ | СТАТЬИ | ССЫЛКИ | КАРТА САЙТА
Hosted by uCoz