Noch 2 Möglichkeiten für 256 Byte lange Tabellen:
Code:
; 1. Möglichkeit
AnzTage
movlw HIGH(TblTage) ; PCLATH setzen
movwf PCLATH
decf zMon,W ; Monat - 1 nach W-Register
addwf PCL,W ; 1 ; PCL + Monat nach W
btfsc STATUS,C ; 2 ; ... kein Übertrag
incf PCLATH ; 3 ; + 1 für 256-er-Grenze
addlw 8 ; 4 ; + 8 Befehle/Adressen
btfsc STATUS,C ; 5 ; ... kein Übertrag
incf PCLATH ; 6 ; + 1 für 256-er-Grenze
decf zMon,W ; 7 ; Monat - 1 nach W-Register
addwf PCL ; 8 ; PCL + Offset
TblTage
retlw 31
.....
; 2. Möglichkeit
AnzTage
movlw HIGH(TblTage) ; PCLATH setzen
movwf PCLATH
decf zMon,W ; Monat - 1 nach W-Register
call GetTage
org 0x??FF
GetTage
movwf PCL
TblTage
retlw 31
.....
Lesezeichen