PIC_Simulator_Simon/TPicSim Testprogramme/TPicSim10.LST

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