📄 1213.lst
字号:
HI-TECH Software PICC Macro Assembler V8.05PL2
Serial number: HCPIC-00000 Mon Sep 17 14:14:25 2007
Licensed to: MITSOS FOREVER
1 processor 16F873A
2 opt pw 79
3 psect __Z00000RS_,global,delta=1
4 psect text2,local,class=CODE,delta=2
5 psect text4,local,class=CODE,delta=2
6 psect rbss_0,global,class=BANK0,space=1,delta=
+ 1
7 psect temp,global,ovrld,class=BANK0,space=1,de
+ lta=1
8 0000
9 0000
10 0000
11 0000
12 0000
13 0000
14 0000
15 0000
16 0000
17 0000
18
19 psect __Z00000RS_
20 00A0
21 00A0
22
23 psect text2
24 06AF _numberplay
25 ; _nu assigned to ?a_numberplay+0
26 0000 _numberplay$nu set ?a_numberplay
27 ;1213.c: 46: switch(k)
28 06AF 2EC5 goto l11
29 06B0 l12
30 ;1213.c: 47: {
31 06B0 30C0 movlw -64
32 06B1 2EC3 goto L9
33 06B2 l13
34 ;1213.c: 49: case 0x01:nu=0xf9;break;
35 06B2 30F9 movlw -7
36 06B3 2EC3 goto L9
37 06B4 l14
38 ;1213.c: 50: case 0x02:nu=0xa4;break;
39 06B4 30A4 movlw -92
40 06B5 2EC3 goto L9
41 06B6 l15
42 ;1213.c: 51: case 0x03:nu=0xb0;break;
43 06B6 30B0 movlw -80
44 06B7 2EC3 goto L9
45 06B8 l16
46 ;1213.c: 52: case 0x04:nu=0x99;break;
47 06B8 3099 movlw -103
48 06B9 2EC3 goto L9
49 06BA l17
50 ;1213.c: 53: case 0x05:nu=0x92;break;
51 06BA 3092 movlw -110
52 06BB 2EC3 goto L9
53 06BC l18
54 ;1213.c: 54: case 0x06:nu=0x82;break;
55 06BC 3082 movlw -126
56 06BD 2EC3 goto L9
57 06BE l19
58 ;1213.c: 55: case 0x07:nu=0xf8;break;
59 06BE 30F8 movlw -8
60 06BF 2EC3 goto L9
61 06C0 l20
62 ;1213.c: 56: case 0x08:nu=0x80;break;
63 06C0 3080 movlw -128
64 06C1 2EC3 goto L9
65 06C2 l21
66 ;1213.c: 57: case 0x09:nu=0x90;break;
67 06C2 3090 movlw -112
68 06C3 L9
69 06C3 00AA movwf ?a_numberplay
70 06C4 2EEA goto l10
71 06C5 l11
72 06C5 1283 bcf 3,5
73 06C6 1303 bcf 3,6 ;carry unused
74 06C7 0829 movf ?_numberplay+1,w
75 06C8 00AF movwf btemp+3
76 06C9 0828 movf ?_numberplay,w
77 06CA 00AE movwf btemp+2
78 06CB 2EE7 goto l30005
79 06CC l30006
80 06CC 082E movf btemp+2,w
81 06CD 00AC movwf btemp
82 06CE 3EF6 addlw -10
83 06CF 1803 btfsc 3,0
84 06D0 2EEA goto l10
85 06D1 3E0A addlw 10
86 06D2 1C03 btfss 3,0
87 06D3 2EEA goto l10
88 06D4 3000 movlw 0
89 06D5 02AC subwf btemp
90 06D6 3006 movlw S30008 shr (0+8)
91 06D7 008A movwf 10
92 06D8 30DD movlw S30008& (0+255)
93 06D9 072C addwf btemp,w
94 06DA 1803 btfsc 3,0
95 06DB 0A8A incf 10
96 06DC 0082 movwf 2
97 06DD S30008
98 06DD 2EB0 goto l12
99 06DE 2EB2 goto l13
100 06DF 2EB4 goto l14
101 06E0 2EB6 goto l15
102 06E1 2EB8 goto l16
103 06E2 2EBA goto l17
104 06E3 2EBC goto l18
105 06E4 2EBE goto l19
106 06E5 2EC0 goto l20
107 06E6 2EC2 goto l21
108 06E7 l30005
109 06E7 082F movf btemp+3,w
110 06E8 1903 btfsc 3,2
111 06E9 2ECC goto l30006
112 06EA l10
113 ;1213.c: 60: return nu;
114 06EA 082A movf ?a_numberplay,w
115 ;1213.c: 62: }
116 06EB 0008 return
117 06EC _delay
118 ; _t assigned to ?a_delay+0
119 0000 _delay$t set ?a_delay
120 ;1213.c: 37: unsigned int t;
121 06EC 0183 clrf 3 ;select bank 0
122 06ED 0829 movf ?_delay+1,w
123 06EE 0428 iorwf ?_delay,w
124 06EF 1903 btfsc 3,2
125 06F0 0008 return
126 06F1 l3
127 ;1213.c: 39: for(t=110;t!=0;t--);
128 06F1 306E movlw 110
129 06F2 00AA movwf ?a_delay
130 06F3 01AB clrf ?a_delay+1
131 06F4 l6
132 06F4 08AA movf ?a_delay
133 06F5 1903 btfsc 3,2
134 06F6 03AB decf ?a_delay+1
135 06F7 03AA decf ?a_delay
136 06F8 082B movf ?a_delay+1,w
137 06F9 042A iorwf ?a_delay,w
138 06FA 1D03 btfss 3,2
139 06FB 2EF4 goto l6
140 06FC 08A8 movf ?_delay
141 06FD 1903 btfsc 3,2
142 06FE 03A9 decf ?_delay+1
143 06FF 03A8 decf ?_delay
144 0700 0829 movf ?_delay+1,w
145 0701 0428 iorwf ?_delay,w
146 0702 1903 btfsc 3,2
147 0703 0008 return
148 0704 2EF1 goto l3
149 0705 _ioint
150 ;1213.c: 19: OPTION = 0xc8;
151 0705 30C8 movlw -56
152 0706 1683 bsf 3,5
153 0707 1303 bcf 3,6 ;carry unused
154 0708 0081 movwf 1
155 ;1213.c: 20: INTCON = 0xc0;
156 0709 30C0 movlw -64
157 070A 008B movwf 11 ;volatile
158 ;1213.c: 21: TRISC = 0x00;
159 070B 0187 clrf 7 ;volatile
160 ;1213.c: 22: TRISB = 0xc1;
161 070C 30C1 movlw -63
162 070D 0086 movwf 6 ;volatile
163 ;1213.c: 23: TRISA = 0x0f;
164 070E 300F movlw 15
165 070F 0085 movwf 5 ;volatile
166 ;1213.c: 24: PORTC = 0xff;
167 0710 30FF movlw -1
168 0711 1283 bcf 3,5
169 0712 0087 movwf 7 ;volatile
170 ;1213.c: 29: }
171 0713 0008 return
172 ;1213.c: 67: main()
173 ;1213.c: 68: {
174 0714 _main
175 ;1213.c: 69: ioint();
176 0714 2705 fcall _ioint
177 0715 l24
178 ;1213.c: 70: while(1)
179 ;1213.c: 71: {
180 0715 01A1 clrf _x
181 ;1213.c: 73: delay(200);
182 0716 30C8 movlw 200
183 0717 00A8 movwf ?_delay
184 0718 01A9 clrf ?_delay+1
185 0719 26EC fcall _delay
186 ;1213.c: 74: RB4=1;
187 071A 1606 bsf 6,4
188 ;1213.c: 75: RB5=0;
189 071B 1286 bcf 6,5
190 ;1213.c: 76: delay(3);
191 071C 3003 movlw 3
192 071D 00A8 movwf ?_delay
193 071E 01A9 clrf ?_delay+1
194 071F 26EC fcall _delay
195 0720 300F movlw 15 ;#
196 0721 00A0 movwf _i ;将15赋值给C中定义的变量i ;#
197 0722 delay1
198 0722 1206 bcf 6,4 ;使RB4=0 ;#
199 0723 1686 bsf 6,5 ;使RB5=1 ;#
200 0724 0000 nop ;#
201 0725 0000 nop ;#
202 0726 0000 nop ;#
203 0727 0000 nop ;#
204 0728 0000 nop ;#
205 0729 0000 nop ;#
206 072A 0000 nop ;#
207 072B 0000 nop ;#
208 072C 0000 nop ;#
209 072D 0000 nop ;#
210 072E 1606 bsf 6,4 ;RB4=1 ;#
211 072F 1286 bcf 6,5 ;RB5=0 ;#
212 0730 0000 nop ;#
213 0731 0000 nop ;#
214 0732 0000 nop ;#
215 0733 0000 nop ;#
216 0734 0000 nop ;#
217 0735 0000 nop ;#
218 0736 0000 nop ;#
219 0737 0000 nop ;#
220 0738 0BA0 decfsz _i ;如i-1=0则跳过下一条指令 ;#
221 0739 2F22 goto delay1 ;#
222 073A 1206 bcf 6,4 ;RB4=0 ;#
223 073B 1286 bcf 6,5 ;RB5=0 ;#
224 073C 0000 nop ;#
225 ;1213.c: 109: while(RB0==1){;}
226 073D l26
227 073D 1C06 btfss 6,0
228 073E 2F45 goto l29
229 073F 2F3D goto l26
230 ;1213.c: 110: while(RB0==0&&x<58)
231 0740 l30
232 ;1213.c: 111: {
233 0740 3017 movlw 23 ;#
234 0741 00A0 movwf _i ;将23赋值给C中定义的变量i ;#
235 0742 delay2
236 0742 0BA0 decfsz _i ;i-1=0则跳过下一条指令 ;#
237 0743 2F42 goto delay2 ;#
238 ;1213.c: 118: x=x+1;
239 0744 0AA1 incf _x
240 0745 l29
241 ;1213.c: 119: }
242 0745 1806 btfsc 6,0
243 0746 2F51 goto l32
244 0747 303A movlw 58
245 0748 0221 subwf _x,w
246 0749 1C03 btfss 3,0
247 074A 2F40 goto l30
248 ;1213.c: 120: while(RB0==1&&x<58)
249 074B 2F51 goto l32
250 074C l33
251 ;1213.c: 121: {
252 074C 3025 movlw 37 ;#
253 074D 00A0 movwf _i ;将37赋值给C中定义的变量i ;#
254 074E delay3
255 074E 0BA0 decfsz _i ;i-1=0则跳过下一条指令 ;#
256 074F 2F4E goto delay3 ;#
257 ;1213.c: 128: x=x+1;
258 0750 0AA1 incf _x
259 0751 l32
260 ;1213.c: 129: }
261 0751 1C06 btfss 6,0
262 0752 2F57 goto l34
263 0753 303A movlw 58
264 0754 0221 subwf _x,w
265 0755 1C03 btfss 3,0
266 0756 2F4C goto l33
267 0757 l34
268 ;1213.c: 130: y=x*34/2;
269 0757 3022 movlw 34
270 0758 00AE movwf btemp+2
271 0759 01AF clrf btemp+3
272 075A 0821 movf _x,w
273 075B 00AC movwf btemp
274 075C 01AD clrf btemp+1
275 075D 118A 2698 fcall awmul
276 075F 0830 movf btemp+4,w
277 0760 00AC movwf btemp
278 0761 0831 movf btemp+5,w
279 0762 00AD movwf btemp+1
280 0763 3002 movlw 2
281 0764 00AE movwf btemp+2
282 0765 3000 movlw 0
283 0766 01AF clrf btemp+3
284 0767 118A 27AD fcall awdiv
285 0769 0830 movf btemp+4,w
286 076A 00A6 movwf _y
287 076B 0831 movf btemp+5,w
288 076C 00A7 movwf _y+1
289 ;1213.c: 131: m=y/100;
290 076D 3064 movlw 100
291 076E 00AE movwf btemp+2
292 076F 01AF clrf btemp+3
293 0770 0827 movf _y+1,w
294 0771 00AD movwf btemp+1
295 0772 0826 movf _y,w
296 0773 00AC movwf btemp
297 0774 118A 27C4 fcall lwdiv
298 0776 0830 movf btemp+4,w
299 0777 00A2 movwf _m
300 0778 0831 movf btemp+5,w
301 0779 00A3 movwf _m+1
302 ;1213.c: 132: n=(y/10)%10;
303 077A 300A movlw 10
304 077B 00AE movwf btemp+2
305 077C 01AF clrf btemp+3
306 077D 0827 movf _y+1,w
307 077E 00AD movwf btemp+1
308 077F 0826 movf _y,w
309 0780 00AC movwf btemp
310 0781 118A 27C4 fcall lwdiv
311 0783 0830 movf btemp+4,w
312 0784 00AC movwf btemp
313 0785 0831 movf btemp+5,w
314 0786 00AD movwf btemp+1
315 0787 300A movlw 10
316 0788 00AE movwf btemp+2
317 0789 3000 movlw 0
318 078A 01AF clrf btemp+3
319 078B 118A 27C4 118A fcall lwmod
320 078E 082C movf btemp,w
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -