нужна помощь в этом коде

I

itachi012587

Guest
Здравствуйте!

Я нашел код в интернете, но я не понимаю, о том, как работает код.Кто-нибудь есть идеи о том, как работает код?Пожалуйста, объясните мне дальше.

Спасибо.;------------------------------------------------- ---------------------------
B2_BCD BCF STATUS, 0; четкое выполнение разрядных
MOVLW .16
MOVWF кол
clrf R0
clrf R1
clrf R2
loop16 RLF L_byte, F
RLF H_byte, F
RLF R2, F
RLF R1, F
RLF R0, F
;
decfsz кол-во, F; обычной для BCD преобразование
Перейти adjDEC
retlw 0
;
R2 adjDEC MOVLW
MOVWF FSR
adjBCD вызова; ни один банк не коммутация, всегда
;; Косвенного доступа к оперативной памяти
MOVLW R1
MOVWF FSR
вызова adjBCD
;
MOVLW R0
MOVWF FSR
вызова adjBCD
;
Перейти loop16
;
adjBCD MOVLW 3
addwf 0, W
Темп MOVWF
btfsc темп, 3; испытание, если результат> 7
MOVWF indf
MOVLW 30
addwf 0, W
Темп MOVWF
btfsc темп, 7; испытание, если результат> 7
MOVWF indf; Сохранить как MSD
retlw 0
;------------------------------------------------- ---------------------------
; Упорядочить результат в виде цифр 1,2,3.
bcdsplit R1 movf, W; принести первые грызть
andlw 0Fh; маску верхнего клев
MOVWF digit1; отправить для отображения обычной переменной.
movf R2, W; принести вторую цифру!
andlw 0F0h; маски нижнюю клев.
MOVWF digit2; отправить для отображения обычной переменной.
swapf digit2, F; после swaping!

movf R2, W, вновь довести lowbyte
andlw 0Fh; маску верхнего клев
MOVWF digit3; отправить его для отображения обычной переменная
возвращение

 
На снимке, код выглядит показаны три цифры (возможно на 3-семь сегментов дисплея).

На поближе: есть 2 функции на языке ассемблера.

1.) B2_BCD - Я думаю, что это обычные для преобразования байт BCD.Пример: B2_BCD (0x14) = 0x20; Это подпрограмма adjBCD

2.) Bcdsplit - извлечение из трех цифр из двух регистров файлаПодпрограмма adjBCD плохо написана.Im Sorry автора.Я прикрепил Ассамблеи файл с кодом C лучше undertand приложения.Однако я немного путают с adjBCD рутины.<img src="http://images.elektroda.net/91_1216792643_thumb.jpg" border="0" alt="need help in this code" title="нужна помощь в этом коде"/>
 

Welcome to EDABoard.com

Sponsor

Back
Top