[an error occurred while processing this directive]
Такой вариант, правда тоже с делением, но
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

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

Отправлено ВН 12 марта 2004 г. 13:52
В ответ на: Преобразование кода отправлено Art 12 марта 2004 г. 11:09

своеобразным.

.asg (0),ONES
.asg (1),TENS
.asg (2),HUNDREDS
.asg (3),THOUSANDS
.asg (4),TENTHOUSANDS
bin2bcd:
FRAME -5
SFTL A,12
ST #10000,*SP(TENTHOUSANDS)
ST #1000,*SP(THOUSANDS)
ST #100,*SP(HUNDREDS)
ST #10,*SP(TENS)
SFTL A,12
SUBC *SP(TENTHOUSANDS),A
SUBC *SP(TENTHOUSANDS),A
SUBC *SP(TENTHOUSANDS),A
SUBC *SP(TENTHOUSANDS),A
STL A,*SP(TENTHOUSANDS)
SFTL A,-4
SUBC *SP(THOUSANDS),A
SUBC *SP(THOUSANDS),A
SUBC *SP(THOUSANDS),A
SUBC *SP(THOUSANDS),A
STL A,*SP(THOUSANDS)
SFTL A,-4
SUBC *SP(HUNDREDS),A
SUBC *SP(HUNDREDS),A
SUBC *SP(HUNDREDS),A
SUBC *SP(HUNDREDS),A
STL A,*SP(HUNDREDS)
SFTL A,-4
SUBC *SP(TENS),A
SUBC *SP(TENS),A
SUBC *SP(TENS),A
SUBC *SP(TENS),A
STL A,*SP(TENS)
STH A,*SP(ONES)
LD *SP(TENTHOUSANDS),16,A
ADD *SP(THOUSANDS),12,A
ADD *SP(HUNDREDS),8,A
ADD *SP(TENS),4,A
ADD *SP(ONES),A
FRAME 5
RET
В результате дв.-дес. код в A. И занимает он 20 разрядов.
Т.е. выход ф-ии - long.
Он же, до выхода из ф-ии, в ячейках TENTHOUSANDS (десятки тысяч),
THOUSANDS (тысячи), HUNDREDS (сотни), TENS (десятки), ONES (единицы).
Эти же ячейки как временное хранилище делителей -10000,1000,100,10.
Это для положит. целых 0-32767.
Только проверьте. На глюки я горазд-).
Да, входное число для ф-ии в A, short.


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

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


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

E-mail: info@telesys.ru