315 lines
14 KiB
Plaintext
315 lines
14 KiB
Plaintext
00001 ;TPicSim10
|
|
00002 ;Programm zum Test des 16F84-Simulators.
|
|
00003 ;Es wird die richtige Funktionsweise von PCL und PCLATH am Beispiel
|
|
00004 ;eines Tabellenzugriffs getestet
|
|
00005 ;(c) St. Lehmann
|
|
00006 ;19.04.2014
|
|
00007
|
|
00008 list c=132 ;Zeilenlänge im LST auf 132 Zeichen setzen
|
|
00009
|
|
00010 ;Definition einiger Symbole
|
|
00011 indirect equ 0
|
|
00012 pcl equ 02h
|
|
00013 status equ 03h
|
|
00014 fsr equ 04h
|
|
00015 ra equ 05h
|
|
00016 rb equ 06h
|
|
00017 pclath equ 0ah
|
|
00018 intcon equ 0bh
|
|
00019
|
|
00020 ;Definition des Prozessors
|
|
00021 device 16F84
|
|
00022 ;Festlegen des Codebeginns
|
|
00023 org 0
|
|
00024 start
|
|
0000 3000 00025 movlw 0 ;Index für Tabellenzugriff in 0FH
|
|
0001 008F 00026 movwf 0fh
|
|
0002 3005 00027 movlw 5 ;insgesamt 5 Tabellenzugriffe
|
|
0003 008E 00028 movwf 0eh
|
|
0004 3010 00029 movlw 10h ;Ergebnis wird ab 10H abgespeichert
|
|
0005 0084 00030 movwf fsr
|
|
00031 loop
|
|
0006 3001 00032 movlw 1 ;PCLATH setzen, damit auf den Bereich 256-511 zugegriffen werden kann
|
|
0007 008A 00033 movwf pclath
|
|
0008 080F 00034 movf 0fh,w
|
|
0009 2109 00035 call tabelle
|
|
000A 0080 00036 movwf indirect
|
|
000B 0A84 00037 incf fsr
|
|
000C 0A8F 00038 incf 0fh
|
|
000D 0B8E 00039 decfsz 0eh
|
|
000E 2806 00040 goto loop
|
|
000F 018A 00041 clrf pclath
|
|
0010 080F 00042 movf 0fh,w
|
|
0011 2109 00043 call tabelle ;Fehler, der ADDWF PCL kommt nicht in die Tabelle. Grund: in W steht 5
|
|
00044 ;im PC 109 bzw. nach dem Fetch 10A. Zu diesem Wert wird 5 addiert und
|
|
00045 ;die oberen Bits auf 0 gesetzt (PCLATH=0). Damit steht im PC der Wert
|
|
00046 ;0Fh. Dorthin springt der PIC durch den ADDWF-Befehl. Hier verweilt
|
|
00047 ;das Programm während der Stack immer weiter wächst.
|
|
00048
|
|
00049
|
|
00050 ende
|
|
0012 2812 00051 goto ende ;Endlosschleife, verhindert Nirwana
|
|
00052
|
|
0013 0000 00053 nop
|
|
0014 0000 00054 nop
|
|
0015 0000 00055 nop
|
|
0016 0000 00056 nop
|
|
0017 0000 00057 nop
|
|
0018 0000 00058 nop
|
|
0019 0000 00059 nop
|
|
001A 0000 00060 nop
|
|
001B 0000 00061 nop
|
|
001C 0000 00062 nop
|
|
001D 0000 00063 nop
|
|
001E 0000 00064 nop
|
|
001F 0000 00065 nop
|
|
0020 0000 00066 nop
|
|
0021 0000 00067 nop
|
|
0022 0000 00068 nop
|
|
0023 0000 00069 nop
|
|
0024 0000 00070 nop
|
|
0025 0000 00071 nop
|
|
0026 0000 00072 nop
|
|
0027 0000 00073 nop
|
|
0028 0000 00074 nop
|
|
0029 0000 00075 nop
|
|
002A 0000 00076 nop
|
|
002B 0000 00077 nop
|
|
002C 0000 00078 nop
|
|
002D 0000 00079 nop
|
|
002E 0000 00080 nop
|
|
002F 0000 00081 nop
|
|
0030 0000 00082 nop
|
|
0031 0000 00083 nop
|
|
0032 0000 00084 nop
|
|
0033 0000 00085 nop
|
|
0034 0000 00086 nop
|
|
0035 0000 00087 nop
|
|
0036 0000 00088 nop
|
|
0037 0000 00089 nop
|
|
0038 0000 00090 nop
|
|
0039 0000 00091 nop
|
|
003A 0000 00092 nop
|
|
003B 0000 00093 nop
|
|
003C 0000 00094 nop
|
|
003D 0000 00095 nop
|
|
003E 0000 00096 nop
|
|
003F 0000 00097 nop
|
|
0040 0000 00098 nop
|
|
0041 0000 00099 nop
|
|
0042 0000 00100 nop
|
|
0043 0000 00101 nop
|
|
0044 0000 00102 nop
|
|
0045 0000 00103 nop
|
|
0046 0000 00104 nop
|
|
0047 0000 00105 nop
|
|
0048 0000 00106 nop
|
|
0049 0000 00107 nop
|
|
004A 0000 00108 nop
|
|
004B 0000 00109 nop
|
|
004C 0000 00110 nop
|
|
004D 0000 00111 nop
|
|
004E 0000 00112 nop
|
|
004F 0000 00113 nop
|
|
0050 0000 00114 nop
|
|
0051 0000 00115 nop
|
|
0052 0000 00116 nop
|
|
0053 0000 00117 nop
|
|
0054 0000 00118 nop
|
|
0055 0000 00119 nop
|
|
0056 0000 00120 nop
|
|
0057 0000 00121 nop
|
|
0058 0000 00122 nop
|
|
0059 0000 00123 nop
|
|
005A 0000 00124 nop
|
|
005B 0000 00125 nop
|
|
005C 0000 00126 nop
|
|
005D 0000 00127 nop
|
|
005E 0000 00128 nop
|
|
005F 0000 00129 nop
|
|
0060 0000 00130 nop
|
|
0061 0000 00131 nop
|
|
0062 0000 00132 nop
|
|
0063 0000 00133 nop
|
|
0064 0000 00134 nop
|
|
0065 0000 00135 nop
|
|
0066 0000 00136 nop
|
|
0067 0000 00137 nop
|
|
0068 0000 00138 nop
|
|
0069 0000 00139 nop
|
|
006A 0000 00140 nop
|
|
006B 0000 00141 nop
|
|
006C 0000 00142 nop
|
|
006D 0000 00143 nop
|
|
006E 0000 00144 nop
|
|
006F 0000 00145 nop
|
|
0070 0000 00146 nop
|
|
0071 0000 00147 nop
|
|
0072 0000 00148 nop
|
|
0073 0000 00149 nop
|
|
0074 0000 00150 nop
|
|
0075 0000 00151 nop
|
|
0076 0000 00152 nop
|
|
0077 0000 00153 nop
|
|
0078 0000 00154 nop
|
|
0079 0000 00155 nop
|
|
007A 0000 00156 nop
|
|
007B 0000 00157 nop
|
|
007C 0000 00158 nop
|
|
007D 0000 00159 nop
|
|
007E 0000 00160 nop
|
|
007F 0000 00161 nop
|
|
0080 0000 00162 nop
|
|
0081 0000 00163 nop
|
|
0082 0000 00164 nop
|
|
0083 0000 00165 nop
|
|
0084 0000 00166 nop
|
|
0085 0000 00167 nop
|
|
0086 0000 00168 nop
|
|
0087 0000 00169 nop
|
|
0088 0000 00170 nop
|
|
0089 0000 00171 nop
|
|
008A 0000 00172 nop
|
|
008B 0000 00173 nop
|
|
008C 0000 00174 nop
|
|
008D 0000 00175 nop
|
|
008E 0000 00176 nop
|
|
008F 0000 00177 nop
|
|
0090 0000 00178 nop
|
|
0091 0000 00179 nop
|
|
0092 0000 00180 nop
|
|
0093 0000 00181 nop
|
|
0094 0000 00182 nop
|
|
0095 0000 00183 nop
|
|
0096 0000 00184 nop
|
|
0097 0000 00185 nop
|
|
0098 0000 00186 nop
|
|
0099 0000 00187 nop
|
|
009A 0000 00188 nop
|
|
009B 0000 00189 nop
|
|
009C 0000 00190 nop
|
|
009D 0000 00191 nop
|
|
009E 0000 00192 nop
|
|
009F 0000 00193 nop
|
|
00A0 0000 00194 nop
|
|
00A1 0000 00195 nop
|
|
00A2 0000 00196 nop
|
|
00A3 0000 00197 nop
|
|
00A4 0000 00198 nop
|
|
00A5 0000 00199 nop
|
|
00A6 0000 00200 nop
|
|
00A7 0000 00201 nop
|
|
00A8 0000 00202 nop
|
|
00A9 0000 00203 nop
|
|
00AA 0000 00204 nop
|
|
00AB 0000 00205 nop
|
|
00AC 0000 00206 nop
|
|
00AD 0000 00207 nop
|
|
00AE 0000 00208 nop
|
|
00AF 0000 00209 nop
|
|
00B0 0000 00210 nop
|
|
00B1 0000 00211 nop
|
|
00B2 0000 00212 nop
|
|
00B3 0000 00213 nop
|
|
00B4 0000 00214 nop
|
|
00B5 0000 00215 nop
|
|
00B6 0000 00216 nop
|
|
00B7 0000 00217 nop
|
|
00B8 0000 00218 nop
|
|
00B9 0000 00219 nop
|
|
00BA 0000 00220 nop
|
|
00BB 0000 00221 nop
|
|
00BC 0000 00222 nop
|
|
00BD 0000 00223 nop
|
|
00BE 0000 00224 nop
|
|
00BF 0000 00225 nop
|
|
00C0 0000 00226 nop
|
|
00C1 0000 00227 nop
|
|
00C2 0000 00228 nop
|
|
00C3 0000 00229 nop
|
|
00C4 0000 00230 nop
|
|
00C5 0000 00231 nop
|
|
00C6 0000 00232 nop
|
|
00C7 0000 00233 nop
|
|
00C8 0000 00234 nop
|
|
00C9 0000 00235 nop
|
|
00CA 0000 00236 nop
|
|
00CB 0000 00237 nop
|
|
00CC 0000 00238 nop
|
|
00CD 0000 00239 nop
|
|
00CE 0000 00240 nop
|
|
00CF 0000 00241 nop
|
|
00D0 0000 00242 nop
|
|
00D1 0000 00243 nop
|
|
00D2 0000 00244 nop
|
|
00D3 0000 00245 nop
|
|
00D4 0000 00246 nop
|
|
00D5 0000 00247 nop
|
|
00D6 0000 00248 nop
|
|
00D7 0000 00249 nop
|
|
00D8 0000 00250 nop
|
|
00D9 0000 00251 nop
|
|
00DA 0000 00252 nop
|
|
00DB 0000 00253 nop
|
|
00DC 0000 00254 nop
|
|
00DD 0000 00255 nop
|
|
00DE 0000 00256 nop
|
|
00DF 0000 00257 nop
|
|
00E0 0000 00258 nop
|
|
00E1 0000 00259 nop
|
|
00E2 0000 00260 nop
|
|
00E3 0000 00261 nop
|
|
00E4 0000 00262 nop
|
|
00E5 0000 00263 nop
|
|
00E6 0000 00264 nop
|
|
00E7 0000 00265 nop
|
|
00E8 0000 00266 nop
|
|
00E9 0000 00267 nop
|
|
00EA 0000 00268 nop
|
|
00EB 0000 00269 nop
|
|
00EC 0000 00270 nop
|
|
00ED 0000 00271 nop
|
|
00EE 0000 00272 nop
|
|
00EF 0000 00273 nop
|
|
00F0 0000 00274 nop
|
|
00F1 0000 00275 nop
|
|
00F2 0000 00276 nop
|
|
00F3 0000 00277 nop
|
|
00F4 0000 00278 nop
|
|
00F5 0000 00279 nop
|
|
00F6 0000 00280 nop
|
|
00F7 0000 00281 nop
|
|
00F8 0000 00282 nop
|
|
00F9 0000 00283 nop
|
|
00FA 0000 00284 nop
|
|
00FB 0000 00285 nop
|
|
00FC 0000 00286 nop
|
|
00FD 0000 00287 nop
|
|
00FE 0000 00288 nop
|
|
00FF 0000 00289 nop
|
|
0100 0000 00290 nop
|
|
0101 0000 00291 nop
|
|
0102 0000 00292 nop
|
|
0103 0000 00293 nop
|
|
0104 0000 00294 nop
|
|
0105 0000 00295 nop
|
|
0106 0000 00296 nop
|
|
0107 0000 00297 nop
|
|
0108 0000 00298 nop
|
|
00299 Tabelle
|
|
0109 0782 00300 addwf pcl
|
|
010A 3460 00301 retlw 60h
|
|
010B 3461 00302 retlw 61h
|
|
010C 3462 00303 retlw 62h
|
|
010D 3463 00304 retlw 63h
|
|
010E 3464 00305 retlw 64h
|
|
010F 3465 00306 retlw 65h
|
|
0110 3466 00307 retlw 66h
|
|
0111 3467 00308 retlw 67h
|
|
0112 3468 00309 retlw 68h
|
|
0113 3469 00310 retlw 69h
|
|
0114 346A 00311 retlw 6Ah
|
|
00312
|
|
00313
|
|
00314
|