Суббота, 09 июня 2012 04:44

ПП чтения и записи двух десятичных чисел в одном байте.

Written by
Rate this item
(0 votes)

Бывает необходимость сохранения достаточно массивной информации в виде десятичных чисел. Очень удобно сохранять не одно десятичное число в байте, а два (одно число сохраняется в младшем, другое в старшем полубайтах). Тем самым соответственно,  в два раза сокращается и объем необходимой  памяти.

 

;-------------------------------------------------------------------------------
;ПП записи двух десятичных чисел (Des_1,Des_2)в один байт памяти данных. 
;-------------------------------------------------------------------------------
W_ram       movff       Des_1,Temp ; записываем 1 десятичное число
            swapf          Des_2,0 ; обмен полуб, запись 2 числа, результат  в W
            addwf           Temp,0 ; W+Temp, результат в Temp
            movwf            INDF0 ; запись в ОЗУ,  адрес FSR0
            return


;-------------------------------------------------------------------------------
;ПП чтения из памяти данных двух десятичных чисел (Des_1,Des_2)из одного байта.
;-------------------------------------------------------------------------------
R_ram       movf           INDF0,0 ; читаем в W по адресу RSR0
            movwf             Temp ; копируем в Temp
            movwf            Des_1 ; копируем в Des_1
            swapf           Temp,0 ; меняем местами п.байты
            movwf            Des_2 ; копируем в Des_2
            movlw      b'00001111' ; убиваем старшие п.байты
            andwf            Des_1 ; 1 дес. число в регистре Des_1
            andwf            Des_2 ; 2 дес. число в регистре Des_2
            return

 

Read 1211 times

Все права принадлежат ChipMK.ru. При копировании материала ссылка обязательна. 2011-2017 © ChipMK.ru

ChipMk.ru Яндекс.Метрика
PRCY.ru