313 lines
3.4 KiB
Plaintext
313 lines
3.4 KiB
Plaintext
|
;TPicSim10
|
||
|
;Programm zum Test des 16F84-Simulators.
|
||
|
;Es wird die richtige Funktionsweise von PCL und PCLATH am Beispiel
|
||
|
;eines Tabellenzugriffs getestet
|
||
|
;(c) St. Lehmann
|
||
|
;19.04.2014
|
||
|
|
||
|
|
||
|
;Definition einiger Symbole
|
||
|
indirect equ 0
|
||
|
pcl equ 02h
|
||
|
status equ 03h
|
||
|
fsr equ 04h
|
||
|
ra equ 05h
|
||
|
rb equ 06h
|
||
|
pclath equ 0ah
|
||
|
intcon equ 0bh
|
||
|
|
||
|
;Definition des Prozessors
|
||
|
device 16F84
|
||
|
;Festlegen des Codebeginns
|
||
|
org 0
|
||
|
start
|
||
|
movlw 0 ;Index f?r Tabellenzugriff in 0FH
|
||
|
movwf 0fh
|
||
|
movlw 5 ;insgesamt 5 Tabellenzugriffe
|
||
|
movwf 0eh
|
||
|
movlw 10h ;Ergebnis wird ab 10H abgespeichert
|
||
|
movwf fsr
|
||
|
loop
|
||
|
movlw 1 ;PCLATH setzen, damit auf den Bereich 256-511 zugegriffen werden kann
|
||
|
movwf pclath
|
||
|
movf 0fh,w
|
||
|
call tabelle
|
||
|
movwf indirect
|
||
|
incf fsr
|
||
|
incf 0fh
|
||
|
decfsz 0eh
|
||
|
goto loop
|
||
|
clrf pclath
|
||
|
movf 0fh,w
|
||
|
call tabelle ;Fehler, der ADDWF PCL kommt nicht in die Tabelle. Grund: in W steht 5
|
||
|
;im PC 109 bzw. nach dem Fetch 10A. Zu diesem Wert wird 5 addiert und
|
||
|
;die oberen Bits auf 0 gesetzt (PCLATH=0). Damit steht im PC der Wert
|
||
|
;0Fh. Dorthin springt der PIC durch den ADDWF-Befehl. Hier verweilt
|
||
|
;das Programm w?hrend der Stack immer weiter w?chst.
|
||
|
|
||
|
|
||
|
ende
|
||
|
goto ende ;Endlosschleife, verhindert Nirwana
|
||
|
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
Tabelle
|
||
|
addwf pcl
|
||
|
retlw 60h
|
||
|
retlw 61h
|
||
|
retlw 62h
|
||
|
retlw 63h
|
||
|
retlw 64h
|
||
|
retlw 65h
|
||
|
retlw 66h
|
||
|
retlw 67h
|
||
|
retlw 68h
|
||
|
retlw 69h
|
||
|
retlw 6Ah
|
||
|
|
||
|
|