I
itachi012587
Guest
Salut!
Am găsit un cod în Internet, dar eu nu înţeleg de modul în care funcţionează de cod.Are cineva o idee despre modul în care funcţionează codul?Te rog să-mi explice în continuare.
Mulţumesc.;------------------------------------------------- ---------------------------
B2_BCD bcf STATUS, 0; clar de biţi să
movlw .16
numărului de movwf
R0 clrf
R1 clrf
R2 clrf
loop16 L_byte RLF, f
H_byte RLF, f
R2 RLF, f
R1 RLF, f
R0 RLF, f
,
numărului de decfsz, F; de rutină pentru conversia BCD
adjDEC goto
retlw 0
,
adjDEC R2 movlw
FSR movwf
apel adjBCD; nici o bancă de comutare, întotdeauna
;; Acces indirect de RAM
R1 movlw
FSR movwf
de apel adjBCD
,
R0 movlw
FSR movwf
de apel adjBCD
,
Du-te la loop16
,
adjBCD movlw 3
addwf 0, W
Temp movwf
Temp btfsc, 3; de încercare în cazul în care rezultatul> 7
indf movwf
movlw 30
addwf 0, W
Temp movwf
Temp btfsc, 7; de testare în cazul în care rezultatul> 7
indf movwf; salva ca MSD
retlw 0
;------------------------------------------------- ---------------------------
; Aranjaţi rezultatul ca cifre 1,2,3.
R1 bcdsplit movf, W; aduce ciuguli primul
andlw 0Fh; masca ciuguli de sus
movwf digit1; trimite pentru a afişa variabilă de rutină.
R2 movf, W; aduce cifre secundă!
andlw 0F0h; masca ciuguli mai mici.
movwf digit2; trimite pentru a afişa variabilă de rutină.
swapf digit2, F; după swaping!
R2 movf, W; Din nou aduce lowbyte
andlw 0Fh; masca ciuguli de sus
movwf digit3, trimite-l pentru a afişa variabilă de rutină
întoarce
Am găsit un cod în Internet, dar eu nu înţeleg de modul în care funcţionează de cod.Are cineva o idee despre modul în care funcţionează codul?Te rog să-mi explice în continuare.
Mulţumesc.;------------------------------------------------- ---------------------------
B2_BCD bcf STATUS, 0; clar de biţi să
movlw .16
numărului de movwf
R0 clrf
R1 clrf
R2 clrf
loop16 L_byte RLF, f
H_byte RLF, f
R2 RLF, f
R1 RLF, f
R0 RLF, f
,
numărului de decfsz, F; de rutină pentru conversia BCD
adjDEC goto
retlw 0
,
adjDEC R2 movlw
FSR movwf
apel adjBCD; nici o bancă de comutare, întotdeauna
;; Acces indirect de RAM
R1 movlw
FSR movwf
de apel adjBCD
,
R0 movlw
FSR movwf
de apel adjBCD
,
Du-te la loop16
,
adjBCD movlw 3
addwf 0, W
Temp movwf
Temp btfsc, 3; de încercare în cazul în care rezultatul> 7
indf movwf
movlw 30
addwf 0, W
Temp movwf
Temp btfsc, 7; de testare în cazul în care rezultatul> 7
indf movwf; salva ca MSD
retlw 0
;------------------------------------------------- ---------------------------
; Aranjaţi rezultatul ca cifre 1,2,3.
R1 bcdsplit movf, W; aduce ciuguli primul
andlw 0Fh; masca ciuguli de sus
movwf digit1; trimite pentru a afişa variabilă de rutină.
R2 movf, W; aduce cifre secundă!
andlw 0F0h; masca ciuguli mai mici.
movwf digit2; trimite pentru a afişa variabilă de rutină.
swapf digit2, F; după swaping!
R2 movf, W; Din nou aduce lowbyte
andlw 0Fh; masca ciuguli de sus
movwf digit3, trimite-l pentru a afişa variabilă de rutină
întoarce