[an error occurred while processing this directive]
У меня Есть только наоборот...
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено 3.1415 24 декабря 2002 г. 10:23
В ответ на: Таблицы забыл, да и в тексте механический огрех исправил отправлено BLACKEAGLE 24 декабря 2002 г. 01:55


;*********************************************************************
;2.Текст программы "bin16ASCII15"- преобразование 16-битного двоичного
;значения в неупакованный BCD формат
;*********************************************************************
;* Количество слов кода :22 + возврат
;* Количество циклов :60/220 (Мин/Макс) + возврат
;* Использованные младшие регистры :5 (fASCIIL/tASCII0,fASCIIH,tASCII2,
;* tASCII3,tASCII4)
;* Использованные старшие регистры :3 (cnt16a/tASCII1,tmp16a,tmp16b)
;*********************************************************************

;***** Регистровые переменные подпрограммы

;* Примечания: 1. Переменные fASCIIL и tASCII0 должны размещаться в
;* одном регистре.
;* 2. Переменные cnt16a и tASCII1 должны размещаться в одном
;* регистре.
;* 3. Переменные, определгнные в младших регистрах могут быть
;* также определены и в старших регистрах.

.def fASCIIL =r11
.def tASCII0 =r11
.def fASCIIH =r12
.def tASCII2 =r13
.def tASCII3 =r14
.def tASCII4 =r15
.def tASCII1 =r16
.def cnt16a =r16
.def tmp16a =r17
.def tmp16b =r18

;***** Код

bin2ASCII16:
ldi tmp16a, low(10000)
ldi tmp16b, high(10000)
rcall bin2ASCII_digit
mov tASCII4, cnt16a
ldi tmp16a, low(1000)
ldi tmp16b, high(1000)
rcall bin2ASCII_digit
mov tASCII3, cnt16a
ldi tmp16a, low(100)
ldi tmp16b, high(100)
rcall bin2ASCII_digit
mov tASCII2, cnt16a
ldi tmp16a, low(10)
ldi tmp16b, high(10)
bin2ASCII_digit:
ldi cnt16a, -1
bin2ASCII_digit_loop:
inc cnt16a
sub fASCIIL, tmp16a
sbc fASCIIH, tmp16b
brsh bin2ASCII_digit_loop
add fASCIIL, tmp16a
adc fASCIIH, tmp16b
ret


Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru