📄 demo10.lst
字号:
HI-TECH Software PICC Macro Assembler V9.50PL2
Fri Apr 11 12:11:13 2008
1 processor 16F877
2 opt pw 79
3 psect rdata_0,global,class=BANK0,space=1,delta
+ =1
4 psect idata_0,global,class=CODE,delta=2
5 psect text1,local,class=CODE,delta=2
6 psect text4,local,class=CODE,delta=2
7 psect intcode,global,class=CODE,delta=2
8 psect intsave_0,global,ovrld,class=COMBANK,spa
+ ce=1,delta=1
9 psect intret,global,class=CODE,delta=2
10 psect intentry,global,class=CODE,delta=2
11 psect intsave,global,class=BANK0,space=1,delta
+ =1
12 psect rbss_0,global,class=BANK0,space=1,delta=
+ 1
13 0000
14 0000
15 0000
16 0000
17 0000
18 0000
19 0000
20 0000
21 0000
22 0000
23
24 psect rdata_0
25 0027 _Counter
26 0027 ds 4
27 002B _Sign
28 002B ds 1
29
30 psect idata_0
31 07FB 3401 retlw 1
32 07FC 3400 retlw 0
33 07FD 3400 retlw 0
34 07FE 3400 retlw 0
35 07FF 3405 retlw 5
36
37 psect text1
38 0774 _DELAY
39 ; _i assigned to ?a_DELAY+0
40 0000 _DELAY$i set ?a_DELAY
41 ; _j assigned to ?a_DELAY+2
42 0000 _DELAY$j set ?a_DELAY+2
43 ;demo10.c: 16: void DELAY(unsigned int n)
44 0774 0183 clrf 3 ;select bank 0
45 0775 0821 movf ?_DELAY,w
46 0776 00A3 movwf ?a_DELAY
47 0777 0822 movf ?_DELAY+1,w
48 0778 00A4 movwf ?a_DELAY+1
49 0779 2F86 goto l6
50 077A l3
51 ;demo10.c: 20: for(j=0;j<1000;j++)
52 077A 01A5 clrf ?a_DELAY+2
53 077B 01A6 clrf ?a_DELAY+3
54 ;demo10.c: 21: continue;
55 077C l9
56 077C 0AA5 incf ?a_DELAY+2
57 077D 1903 btfsc 3,2
58 077E 0AA6 incf ?a_DELAY+3
59 077F 3003 movlw 3
60 0780 0226 subwf ?a_DELAY+3,w
61 0781 30E8 movlw 232
62 0782 1903 btfsc 3,2
63 0783 0225 subwf ?a_DELAY+2,w
64 0784 1C03 btfss 3,0
65 0785 2F7C goto l9
66 0786 l6
67 0786 0823 movf ?a_DELAY,w
68 0787 1903 btfsc 3,2
69 0788 03A4 decf ?a_DELAY+1
70 0789 03A3 decf ?a_DELAY
71 078A 0A23 incf ?a_DELAY,w
72 078B 1903 btfsc 3,2
73 078C 0A24 incf ?a_DELAY+1,w
74 078D 1903 btfsc 3,2
75 078E 0008 return
76 078F 2F7A goto l3
77 0790 _INT
78 ;demo10.c: 23: void INT()
79 0790 178B bsf 11,7
80 ;demo10.c: 26: INTE=1;
81 0791 160B bsf 11,4
82 ;demo10.c: 27: PORTB=PORTB;
83 0792 1283 bcf 3,5
84 0793 1303 bcf 3,6 ;carry unused
85 0794 0806 movf 6,w ;volatile
86 0795 0086 movwf 6 ;volatile
87 ;demo10.c: 28: RBIE=1;
88 0796 158B bsf 11,3
89 ;demo10.c: 29: T0IE=1;
90 0797 168B bsf 11,5
91 ;demo10.c: 30: }
92 0798 0008 return ;W free
93 0799 _initial
94 ;demo10.c: 5: void initial()
95 0799 018B clrf 11 ;volatile
96 ;demo10.c: 8: OPTION=0X01;
97 079A 1683 bsf 3,5
98 079B 1303 bcf 3,6 ;carry unused
99 079C 0181 clrf 1
100 079D 0A81 incf 1
101 ;demo10.c: 9: ADCON1=0X06;
102 079E 3006 movlw 6
103 079F 009F movwf 31 ;volatile
104 ;demo10.c: 10: TRISE=0X00;
105 07A0 0189 clrf 9 ;volatile
106 ;demo10.c: 11: PORTE=0X04;
107 07A1 3004 movlw 4
108 07A2 1283 bcf 3,5
109 07A3 0089 movwf 9 ;volatile
110 ;demo10.c: 12: TRISB=0XFF;
111 07A4 30FF movlw -1
112 07A5 1683 bsf 3,5
113 07A6 0086 movwf 6 ;volatile
114 ;demo10.c: 13: TRISD=0X00;
115 07A7 0188 clrf 8 ;volatile
116 ;demo10.c: 14: PORTD=0X00;
117 07A8 1283 bcf 3,5
118 07A9 0188 clrf 8 ;volatile
119 ;demo10.c: 15: }
120 07AA 0008 return ;W free
121 07AB _main
122 ;demo10.c: 31: void main()
123 07AB 2799 fcall _initial
124 ;demo10.c: 34: INT();
125 07AC 2790 fcall _INT
126 07AD l13
127 ;demo10.c: 35: while(1)
128 ;demo10.c: 36: {
129 07AD 0063 sleep ;#
130 ;demo10.c: 38: asm("nop");
131 07AE 0000 nop ;#
132 ;demo10.c: 39: if(Sign==0)
133 07AF 082B movf _Sign,w ;volatile
134 07B0 1D03 btfss 3,2
135 07B1 2FD5 goto l15
136 ;demo10.c: 40: {
137 07B2 3005 movlw 5
138 07B3 00AB movwf _Sign ;volatile
139 ;demo10.c: 42: RE2=1;
140 07B4 1509 bsf 9,2
141 ;demo10.c: 43: PORTD=0;
142 07B5 0188 clrf 8 ;volatile
143 ;demo10.c: 44: TMR0=0X06;
144 07B6 3006 movlw 6
145 07B7 0081 movwf 1 ;volatile
146 07B8 l16
147 ;demo10.c: 45: for(;;)
148 ;demo10.c: 46: {
149 07B8 3014 movlw 20
150 07B9 00A1 movwf ?_DELAY
151 07BA 01A2 clrf ?_DELAY+1
152 07BB 2774 fcall _DELAY
153 ;demo10.c: 48: RE0=!RE0;
154 07BC 3001 movlw 1
155 07BD 0689 xorwf 9
156 ;demo10.c: 49: if(Counter>=60000)
157 07BE 3000 movlw 0
158 07BF 022A subwf _Counter+3,w ;volatile
159 07C0 1D03 btfss 3,2
160 07C1 2FCC goto u45
161 07C2 3000 movlw 0
162 07C3 0229 subwf _Counter+2,w ;volatile
163 07C4 1D03 btfss 3,2
164 07C5 2FCC goto u45
165 07C6 30EA movlw 234
166 07C7 0228 subwf _Counter+1,w ;volatile
167 07C8 1D03 btfss 3,2
168 07C9 2FCC goto u45
169 07CA 3060 movlw 96
170 07CB 0227 subwf _Counter,w ;volatile
171 07CC u45
172 07CC 1C03 btfss 3,0
173 07CD 2FB8 goto l16
174 ;demo10.c: 50: {
175 07CE 1009 bcf 9,0
176 ;demo10.c: 52: Counter=1;
177 07CF 3001 movlw 1
178 07D0 00A7 movwf _Counter ;volatile
179 07D1 01A8 clrf _Counter+1 ;volatile
180 07D2 01A9 clrf _Counter+2 ;volatile
181 07D3 01AA clrf _Counter+3 ;volatile
182 ;demo10.c: 53: RBIF=0;
183 07D4 100B bcf 11,0
184 ;demo10.c: 54: break;
185 ;demo10.c: 55: }
186 07D5 l15
187 ;demo10.c: 57: }
188 07D5 0B2B decfsz _Sign,w ;volatile
189 07D6 2FAD goto l13
190 ;demo10.c: 59: {
191 07D7 3005 movlw 5
192 07D8 00AB movwf _Sign ;volatile
193 ;demo10.c: 61: PORTD=tmp;
194 07D9 0820 movf _tmp,w ;volatile
195 07DA 0088 movwf 8 ;volatile
196 ;demo10.c: 62: RE2=0;
197 07DB 1109 bcf 9,2
198 ;demo10.c: 63: TMR0=0X06;
199 07DC 3006 movlw 6
200 07DD 0081 movwf 1 ;volatile
201 07DE l21
202 ;demo10.c: 64: for(;;)
203 ;demo10.c: 65: {
204 07DE 300A movlw 10
205 07DF 00A1 movwf ?_DELAY
206 07E0 01A2 clrf ?_DELAY+1
207 07E1 2774 fcall _DELAY
208 ;demo10.c: 67: RE0=!RE0;
209 07E2 3001 movlw 1
210 07E3 0689 xorwf 9
211 ;demo10.c: 68: if(Counter>=30000)
212 07E4 3000 movlw 0
213 07E5 022A subwf _Counter+3,w ;volatile
214 07E6 1D03 btfss 3,2
215 07E7 2FF2 goto u65
216 07E8 3000 movlw 0
217 07E9 0229 subwf _Counter+2,w ;volatile
218 07EA 1D03 btfss 3,2
219 07EB 2FF2 goto u65
220 07EC 3075 movlw 117
221 07ED 0228 subwf _Counter+1,w ;volatile
222 07EE 1D03 btfss 3,2
223 07EF 2FF2 goto u65
224 07F0 3030 movlw 48
225 07F1 0227 subwf _Counter,w ;volatile
226 07F2 u65
227 07F2 1C03 btfss 3,0
228 07F3 2FDE goto l21
229 ;demo10.c: 69: {
230 07F4 1009 bcf 9,0
231 ;demo10.c: 71: Counter=1;
232 07F5 3001 movlw 1
233 07F6 00A7 movwf _Counter ;volatile
234 07F7 01A8 clrf _Counter+1 ;volatile
235 07F8 01A9 clrf _Counter+2 ;volatile
236 07F9 01AA clrf _Counter+3 ;volatile
237 ;demo10.c: 72: break;
238 07FA 2FAD goto l13
239
240 psect intcode
241 000B _tt
242 000B int_func
243 ;demo10.c: 79: void interrupt tt(void)
244 000B 1D0B btfss 11,2
245 000C 2819 goto l26
246 ;demo10.c: 82: {
247 000D 3006 movlw 6
248 000E 1283 bcf 3,5
249 000F 1303 bcf 3,6 ;carry unused
250 0010 0081 movwf 1 ;volatile
251 ;demo10.c: 84: Counter++;
252 0011 0AA7 incf _Counter ;volatile
253 0012 1903 btfsc 3,2
254 0013 0AA8 incf _Counter+1 ;volatile
255 0014 1903 btfsc 3,2
256 0015 0AA9 incf _Counter+2 ;volatile
257 0016 1903 btfsc 3,2
258 0017 0AAA incf _Counter+3 ;volatile
259 ;demo10.c: 85: T0IF=0;
260 0018 110B bcf 11,2
261 0019 l26
262 ;demo10.c: 86: }
263 0019 1C8B btfss 11,1
264 001A 281F goto l27
265 ;demo10.c: 88: {
266 001B 1283 bcf 3,5
267 001C 1303 bcf 3,6 ;carry unused
268 001D 01AB clrf _Sign ;volatile
269 ;demo10.c: 90: INTF=0;
270 001E 108B bcf 11,1
271 001F l27
272 ;demo10.c: 91: }
273 001F 1C0B btfss 11,0
274 0020 2836 goto l25
275 ;demo10.c: 93: {
276 0021 3001 movlw 1
277 0022 1283 bcf 3,5
278 0023 1303 bcf 3,6 ;carry unused
279 0024 00AB movwf _Sign ;volatile
280 ;demo10.c: 95: if(RB4==0)tmp=0x80;
281 0025 1A06 btfsc 6,4
282 0026 2829 goto l29
283 0027 3080 movlw -128
284 0028 00A0 movwf _tmp ;volatile
285 0029 l29
286 ;demo10.c: 96: if(RB5==0)tmp=0x40;
287 0029 1A86 btfsc 6,5
288 002A 282D goto l30
289 002B 3040 movlw 64
290 002C 00A0 movwf _tmp ;volatile
291 002D l30
292 ;demo10.c: 97: if(RB6==0)tmp=0x20;
293 002D 1B06 btfsc 6,6
294 002E 2831 goto l31
295 002F 3020 movlw 32
296 0030 00A0 movwf _tmp ;volatile
297 0031 l31
298 ;demo10.c: 98: if(RB7==0)tmp=0x10;
299 0031 1B86 btfsc 6,7
300 0032 2835 goto l32
301 0033 3010 movlw 16
302 0034 00A0 movwf _tmp ;volatile
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -