📄 main.lst
字号:
HI-TECH Software PICC Macro Assembler V8.05PL2
Serial number: HCPIC-01234 Tue Mar 31 19:08:05 2009
Licensed to: SHAN
1 processor 16F877A
2 opt pw 79
3 psect __Z01234RS_,global,delta=1
4 psect rdata_0,global,class=BANK0,space=1,delta
+ =1
5 psect idata_0,global,class=CODE,delta=2
6 psect config,global,class=CONFIG,delta=2
7 psect text4,local,class=CODE,delta=2
8 psect text7,local,class=CODE,delta=2
9 psect temp,global,ovrld,class=BANK0,space=1,de
+ lta=1
10 0000
11 0000
12 0000
13 0000
14 0000
15 0000
16 0000
17 0000
18 0000
19 0000
20
21 psect __Z01234RS_
22 0190
23 0190
24
25 psect rdata_0
26 002F _table
27 002F ds 1
28 0030 ds 1
29 0031 ds 1
30 0032 ds 1
31 0033 ds 1
32 0034 ds 1
33 0035 ds 1
34 0036 ds 1
35 0037 ds 1
36 0038 ds 1
37 0039 ds 1
38 003A ds 1
39 003B ds 1
40 003C ds 1
41 003D ds 1
42 003E ds 1
43
44 psect idata_0
45 07F0 343F retlw 63
46 07F1 3406 retlw 6
47 07F2 345B retlw 91
48 07F3 344F retlw 79
49 07F4 3466 retlw 102
50 07F5 346D retlw 109
51 07F6 347D retlw 125
52 07F7 3407 retlw 7
53 07F8 347F retlw 127
54 07F9 346F retlw 111
55 07FA 3477 retlw 119
56 07FB 347C retlw 124
57 07FC 3439 retlw 57
58 07FD 345E retlw 94
59 07FE 3479 retlw 121
60 07FF 3471 retlw 113 ;#
61
62 psect config
63 2007 3B31 dw 15153 ;#
64 0000 _delay$ms set ?_delay
65
66 psect text4
67 06E0 _dig_tube
68 ; _num0 assigned to ?a_dig_tube+0
69 0000 _dig_tube$num0 set ?a_dig_tube
70 ;_num0 stored from w
71 06E0 0183 clrf 3 ;select bank 0
72 06E1 00A6 movwf ?a_dig_tube
73 ;main.c: 51: show(num0,0);
74 06E2 01A7 clrf ?_show
75 06E3 271E 120A 118A fcall _show
76 ;main.c: 52: show(num1,1);
77 06E6 01A7 clrf ?_show
78 06E7 0AA7 incf ?_show
79 06E8 0821 movf ?_dig_tube,w
80 06E9 271E 120A 118A fcall _show
81 ;main.c: 53: show(num2,2);
82 06EC 3002 movlw 2
83 06ED 00A7 movwf ?_show
84 06EE 0822 movf ?_dig_tube+1,w
85 06EF 271E 120A 118A fcall _show
86 ;main.c: 54: show(num3,3);
87 06F2 3003 movlw 3
88 06F3 00A7 movwf ?_show
89 06F4 0823 movf ?_dig_tube+2,w
90 06F5 271E 120A 118A fcall _show
91 ;main.c: 55: show(num4,4);
92 06F8 3004 movlw 4
93 06F9 00A7 movwf ?_show
94 06FA 0824 movf ?_dig_tube+3,w
95 06FB 271E 120A 118A fcall _show
96 ;main.c: 56: show(num5,5);
97 06FE 3005 movlw 5
98 06FF 00A7 movwf ?_show
99 0700 0825 movf ?_dig_tube+4,w
100 0701 2F1E ljmp _show
101 0702 _delay
102 ; _i assigned to ?a_delay+0
103 0000 _delay$i set ?a_delay
104 ; _j assigned to ?a_delay+2
105 0000 _delay$j set ?a_delay+2
106 ;main.c: 10: unsigned int i,j;
107 0702 0183 clrf 3 ;select bank 0
108 0703 01AB clrf ?a_delay
109 0704 01AC clrf ?a_delay+1
110 0705 2F15 goto l5
111 0706 l2
112 ;main.c: 12: {
113 ;main.c: 13: for(j=0;j<88;j++);
114 0706 01AD clrf ?a_delay+2
115 0707 01AE clrf ?a_delay+3
116 0708 l6
117 0708 0AAD incf ?a_delay+2
118 0709 1903 btfsc 3,2
119 070A 0AAE incf ?a_delay+3
120 070B 3000 movlw 0
121 070C 022E subwf ?a_delay+3,w
122 070D 3058 movlw 88
123 070E 1903 btfsc 3,2
124 070F 022D subwf ?a_delay+2,w
125 0710 1C03 btfss 3,0
126 0711 2F08 goto l6
127 ;main.c: 14: }
128 0712 0AAB incf ?a_delay
129 0713 1903 btfsc 3,2
130 0714 0AAC incf ?a_delay+1
131 0715 l5
132 0715 082A movf ?_delay+1,w
133 0716 022C subwf ?a_delay+1,w
134 0717 1D03 btfss 3,2
135 0718 2F1B goto u25
136 0719 0829 movf ?_delay,w
137 071A 022B subwf ?a_delay,w
138 071B u25
139 071B 1803 btfsc 3,0
140 071C 0008 return
141 071D 2F06 goto l2
142 071E _show
143 ; _j assigned to ?a_show+0
144 0000 _show$j set ?a_show
145 ;_j stored from w
146 071E 0183 clrf 3 ;select bank 0
147 071F 00A8 movwf ?a_show
148 ;main.c: 19: PORTD=table[j];
149 0720 3E2F addlw _table
150 0721 0084 movwf 4
151 0722 1383 bcf 3,7
152 0723 0800 movf 0,w
153 0724 0088 movwf 8 ;volatile
154 ;main.c: 20: PORTA=~(1<<(k));
155 0725 3001 movlw 1
156 0726 00F0 movwf btemp
157 0727 0827 movf ?_show,w
158 0728 00F1 movwf btemp+1
159 0729 0AF1 incf btemp+1
160 072A 2F2D goto u34
161 072B u35
162 072B 1003 bcf 3,0
163 072C 0DF0 rlf btemp
164 072D u34
165 072D 0BF1 decfsz btemp+1
166 072E 2F2B goto u35
167 072F 0970 comf btemp,w
168 0730 0085 movwf 5 ;volatile
169 ;main.c: 21: delay(1);
170 0731 01A9 clrf ?_delay
171 0732 0AA9 incf ?_delay
172 0733 01AA clrf ?_delay+1
173 0734 2702 fcall _delay
174 ;main.c: 22: PORTA=0XFF;
175 0735 30FF movlw -1
176 0736 0085 movwf 5 ;volatile
177 ;main.c: 23: }
178 0737 0008 return
179 ;main.c: 37: void bell(unsigned char num)
180 ;main.c: 38: {
181 0738 _bell
182 ; _num assigned to ?a_bell+0
183 0000 _bell$num set ?a_bell
184 ; _dnum assigned to ?a_bell+1
185 0000 _bell$dnum set ?a_bell+1
186 ;_num stored from w
187 0738 0183 clrf 3 ;select bank 0
188 0739 00A0 movwf ?a_bell
189 ;main.c: 39: unsigned char dnum;
190 073A 00A1 movwf ?a_bell+1
191 073B 08A1 movf ?a_bell+1
192 073C 1903 btfsc 3,2
193 073D 0008 return
194 073E l12
195 ;main.c: 41: {
196 ;main.c: 42: RE0=1;
197 073E 1409 bsf 9,0
198 ;main.c: 43: delay(50);
199 073F 3032 movlw 50
200 0740 00A9 movwf ?_delay
201 0741 01AA clrf ?_delay+1
202 0742 2702 fcall _delay
203 ;main.c: 44: RE0=0;
204 0743 1009 bcf 9,0
205 ;main.c: 45: delay(20);
206 0744 3014 movlw 20
207 0745 00A9 movwf ?_delay
208 0746 01AA clrf ?_delay+1
209 0747 2702 fcall _delay
210 ;main.c: 46: }
211 0748 0BA1 decfsz ?a_bell+1
212 0749 2F3E goto l12
213 074A 0008 return
214 ;main.c: 60: unsigned char martric_key_scan()
215 ;main.c: 61: {
216 074B _martric_key_scan
217 ; _code_l assigned to ?a_martric_key_scan+0
218 0000 _martric_key_scan$code_l set ?a_martric_key_sca
+ n
219 ; _code_h assigned to ?a_martric_key_scan+1
220 0000 _martric_key_scan$code_h set ?a_martric_key_sca
+ n+1
221 ; _key_result assigned to ?a_martric_key_scan+2
222 0000 _martric_key_scan$key_result set ?a_martric_key
+ _scan+2
223 ;main.c: 62: unsigned char code_h;
224 074B 300F movlw 15
225 074C 0183 clrf 3 ;select bank 0
226 074D 0086 movwf 6 ;volatile
227 ;main.c: 66: if((PORTB&0X0F)!=0X0F)
228 074E 0806 movf 6,w ;volatile
229 074F 390F andlw 15
230 0750 3A0F xorlw 15
231 0751 1903 btfsc 3,2
232 0752 3400 retlw 0
233 ;main.c: 67: {
234 0753 300A movlw 10
235 0754 00A9 movwf ?_delay
236 0755 01AA clrf ?_delay+1
237 0756 2702 fcall _delay
238 ;main.c: 69: if((PORTB&0X0F)!=0X0F)
239 0757 0806 movf 6,w ;volatile
240 0758 390F andlw 15
241 0759 3A0F xorlw 15
242 075A 1903 btfsc 3,2
243 075B 3400 retlw 0
244 ;main.c: 70: {
245 075C 30EF movlw -17
246 075D 00A2 movwf ?a_martric_key_scan+1
247 ;main.c: 72: while((code_h&0xff)!=0xff)
248 075E 2FC7 goto l19
249 075F l20
250 ;main.c: 73: {
251 075F 0822 movf ?a_martric_key_scan+1,w
252 0760 0086 movwf 6 ;volatile
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -