Помогите корректно преобразовать асмом (для PIC16F84) из двоично-десятичного числа в двоичное
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено Stoun 01 августа 2003 г. 11:38

Я делал так:

;Исходные данные, вводятся в виде трех байтов в дв.-дес. коде:
DIG3 - единицы
DIG2 - десятки
DIG1 - сотни
(максимальное вводимое число 199(Dес)
;Результат записывается в С1

;Преобразование
movf DIG3,w
movwf С1 ;записали значение единиц
movlw 0Ah
movwf ctr ;записали в врем. счетчик 10
movf DIG2,w ;прочитали значение десятков

Ten:
addwf С1,f
decfsz ctr,f ;прибавили десятки к единицам 10 раз, т.е. умнож. на 10
goto Ten

movf DIG1,w ;прочитали значение сотен (может быть только 1 или 0)
btfsc STATUS,Z ;если 0 то прыгнули на выход с результатом в С1
goto Hun
movlw 64h ;если не 0, то прибавили к результату 100 (64h)
addwf С1,f

Нun:
movf C1,w

Можно ли это все как-то проще сделать?

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

Ответы



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

E-mail: info@telesys.ru