📄 sci.lst
字号:
HI-TECH Software PICC Macro Assembler V9.60PL1
Mon Jan 14 16:16:24 2008
1 processor 16F877A
2 opt pw 79
3 psect text0,local,class=CODE,delta=2
4 psect text1,local,class=CODE,delta=2
5 psect text2,local,class=CODE,delta=2
6 psect text3,local,class=CODE,delta=2
7 psect text4,local,class=CODE,delta=2
8 psect text5,local,class=CODE,delta=2
9 psect text6,local,class=CODE,delta=2
10 psect temp,global,ovrld,class=BANK0,space=1,de
+ lta=1
11 0000
12 0000
13 0000
14 0000
15 0000
16 0000
17 0000
18 0000
19 0000
20 0000
21 0000 _sci_Init$baud set ?_sci_Init
22 0000 _sci_Init$ninebits set ?_sci_Init+4
23
24 psect text0
25 06E3 _sci_Init
26 ; _X assigned to ?a_sci_Init+0
27 0000 _sci_Init$X set ?a_sci_Init
28 ; _tmp assigned to ?a_sci_Init+2
29 0000 _sci_Init$tmp set ?a_sci_Init+2
30 ;sci.c: 12: unsigned char
31 06E3 0183 clrf 3 ;select bank 0
32 06E4 0825 movf ?_sci_Init,w
33 06E5 00F4 movwf btemp
34 06E6 0826 movf ?_sci_Init+1,w
35 06E7 00F5 movwf btemp+1
36 06E8 0827 movf ?_sci_Init+2,w
37 06E9 00F6 movwf btemp+2
38 06EA 0828 movf ?_sci_Init+3,w
39 06EB 00F7 movwf btemp+3
40 06EC 3004 movlw 4
41 06ED 268C call llsll
42 06EE 0874 movf btemp,w
43 06EF 00AC movwf ?a_sci_Init+2
44 06F0 0875 movf btemp+1,w
45 06F1 00AD movwf ?a_sci_Init+3
46 06F2 0876 movf btemp+2,w
47 06F3 00AE movwf ?a_sci_Init+4
48 06F4 0877 movf btemp+3,w
49 06F5 00AF movwf ?a_sci_Init+5
50 ;sci.c: 21: X = (int)((4000000L)/tmp) - 1;
51 06F6 082C movf ?a_sci_Init+2,w
52 06F7 00F8 movwf btemp+4
53 06F8 082D movf ?a_sci_Init+3,w
54 06F9 00F9 movwf btemp+5
55 06FA 082E movf ?a_sci_Init+4,w
56 06FB 00FA movwf btemp+6
57 06FC 082F movf ?a_sci_Init+5,w
58 06FD 00FB movwf btemp+7
59 06FE 01F4 clrf btemp
60 06FF 3009 movlw 9
61 0700 00F5 movwf btemp+1
62 0701 303D movlw 61
63 0702 00F6 movwf btemp+2
64 0703 3000 movlw 0
65 0704 01F7 clrf btemp+3
66 0705 2776 call lldiv
67 0706 30FF movlw 255
68 0707 0774 addwf btemp,w
69 0708 00AA movwf ?a_sci_Init
70 0709 30FF movlw 255
71 070A 1803 btfsc 3,0
72 070B 3000 movlw 256
73 070C 0775 addwf btemp+1,w
74 070D 00AB movwf ?a_sci_Init+1
75 ;sci.c: 22: if((X>255) || (X<0))
76 070E 3A80 xorlw 128
77 070F 00F4 movwf btemp
78 0710 3081 movlw 129
79 0711 0274 subwf btemp,w
80 0712 3000 movlw 0
81 ;set bank bits for (((?a_sci_Init+0)))
82 0713 1903 btfsc 3,2
83 0714 022A subwf ?a_sci_Init,w
84 0715 1803 btfsc 3,0
85 0716 2F19 goto u30
86 0717 1FAB btfss ?a_sci_Init+1,7
87 0718 2F53 goto l2
88 0719 u30
89 ;sci.c: 23: {
90 0719 0825 movf ?_sci_Init,w
91 071A 00F4 movwf btemp
92 071B 0826 movf ?_sci_Init+1,w
93 071C 00F5 movwf btemp+1
94 071D 0827 movf ?_sci_Init+2,w
95 071E 00F6 movwf btemp+2
96 071F 0828 movf ?_sci_Init+3,w
97 0720 00F7 movwf btemp+3
98 0721 3006 movlw 6
99 0722 268C call llsll
100 0723 0874 movf btemp,w
101 0724 00AC movwf ?a_sci_Init+2
102 0725 0875 movf btemp+1,w
103 0726 00AD movwf ?a_sci_Init+3
104 0727 0876 movf btemp+2,w
105 0728 00AE movwf ?a_sci_Init+4
106 0729 0877 movf btemp+3,w
107 072A 00AF movwf ?a_sci_Init+5
108 ;sci.c: 25: X = (int)((4000000L)/tmp) - 1;
109 072B 082C movf ?a_sci_Init+2,w
110 072C 00F8 movwf btemp+4
111 072D 082D movf ?a_sci_Init+3,w
112 072E 00F9 movwf btemp+5
113 072F 082E movf ?a_sci_Init+4,w
114 0730 00FA movwf btemp+6
115 0731 082F movf ?a_sci_Init+5,w
116 0732 00FB movwf btemp+7
117 0733 01F4 clrf btemp
118 0734 3009 movlw 9
119 0735 00F5 movwf btemp+1
120 0736 303D movlw 61
121 0737 00F6 movwf btemp+2
122 0738 3000 movlw 0
123 0739 01F7 clrf btemp+3
124 073A 2776 call lldiv
125 073B 30FF movlw 255
126 073C 0774 addwf btemp,w
127 073D 00AA movwf ?a_sci_Init
128 073E 30FF movlw 255
129 073F 1803 btfsc 3,0
130 0740 3000 movlw 256
131 0741 0775 addwf btemp+1,w
132 0742 00AB movwf ?a_sci_Init+1
133 ;sci.c: 26: if((X>255) || (X<0))
134 0743 3A80 xorlw 128
135 0744 00F4 movwf btemp
136 0745 3081 movlw 129
137 0746 0274 subwf btemp,w
138 0747 3000 movlw 0
139 ;set bank bits for (((?a_sci_Init+0)))
140 0748 1903 btfsc 3,2
141 0749 022A subwf ?a_sci_Init,w
142 074A 1803 btfsc 3,0
143 074B 2F4E goto u60
144 074C 1FAB btfss ?a_sci_Init+1,7
145 074D 2F50 goto l3
146 074E u60
147 ;sci.c: 27: {
148 074E 3001 movlw 1
149 074F 2F74 goto l1
150 0750 l3
151 ;sci.c: 30: else
152 0750 1683 bsf 3,5
153 0751 1118 bcf 24,2
154 ;sci.c: 32: }
155 0752 2F55 goto l5
156 0753 l2
157 ;sci.c: 33: else
158 0753 1683 bsf 3,5
159 0754 1518 bsf 24,2
160 0755 l5
161 ;sci.c: 35: SPBRG = X;
162 0755 1283 bcf 3,5
163 0756 082A movf ?a_sci_Init,w
164 0757 1683 bsf 3,5
165 0758 0099 movwf 25 ;volatile
166 ;sci.c: 37: SYNC = 0;
167 0759 1218 bcf 24,4
168 ;sci.c: 38: SPEN = 1;
169 075A 1283 bcf 3,5
170 075B 1798 bsf 24,7
171 ;sci.c: 39: CREN = 1;
172 075C 1618 bsf 24,4
173 ;sci.c: 40: SREN = 0;
174 075D 1298 bcf 24,5
175 ;sci.c: 41: TXIE = 0;
176 075E 1683 bsf 3,5
177 075F 120C bcf 12,4
178 ;sci.c: 42: RCIE = 0;
179 0760 128C bcf 12,5
180 ;sci.c: 43: TX9 = ninebits?1:0;
181 0761 1283 bcf 3,5
182 0762 08A9 movf ?_sci_Init+4
183 0763 1683 bsf 3,5
184 0764 1903 btfsc 3,2
185 0765 2F68 goto L1
186 0766 1718 bsf 24,6
187 0767 2F69 goto u84
188 0768 L1
189 0768 1318 bcf 24,6
190 0769 u84
191 ;sci.c: 44: RX9 = ninebits?1:0;
192 0769 1283 bcf 3,5
193 076A 1303 bcf 3,6 ;carry unused
194 076B 08A9 movf ?_sci_Init+4
195 076C 1903 btfsc 3,2
196 076D 2F70 goto u90
197 076E 1718 bsf 24,6
198 076F 2F71 goto u104
199 0770 u90
200 0770 1318 bcf 24,6
201 0771 u104
202 ;sci.c: 45: TXEN = 1;
203 0771 1683 bsf 3,5
204 0772 1698 bsf 24,5
205 ;sci.c: 47: return 0;
206 0773 3000 movlw 0
207 ;sci.c: 48: }
208 0774 l1
209 0774 1283 bcf 3,5
210 0775 0008 return ;uses W
211
212 psect text1
213 0683 _sci_PutByte
214 ; _byte assigned to ?a_sci_PutByte+0
215 0000 _sci_PutByte$byte set ?a_sci_PutByte
216 ;_byte stored from w
217 0683 0183 clrf 3 ;select bank 0
218 0684 00A5 movwf ?a_sci_PutByte
219 ;sci.c: 50: void
220 ;sci.c: 54: continue;
221 0685 l7
222 0685 1283 bcf 3,5
223 0686 1303 bcf 3,6 ;carry unused
224 0687 1E0C btfss 12,4
225 0688 2E85 goto l7
226 ;sci.c: 55: TXREG = byte;
227 0689 0825 movf ?a_sci_PutByte,w
228 068A 0099 movwf 25 ;volatile
229 ;sci.c: 58: }
230 068B 0008 return ;W free
231
232 psect text2
233 066A _sci_GetByte
234 ;sci.c: 60: unsigned char
235 ;sci.c: 64: continue;
236 066A l11
237 066A 0183 clrf 3 ;select bank 0
238 066B 1E8C btfss 12,5
239 066C 2E6A goto l11
240 ;sci.c: 66: return RCREG;
241 066D 081A movf 26,w ;volatile
242 ;sci.c: 67: }
243 066E 0008 return ;uses W
244
245 psect text3
246 066F _sci_CheckOERR
247 ;sci.c: 69: unsigned char
248 066F 0183 clrf 3 ;select bank 0
249 0670 1C98 btfss 24,1
250 0671 3400 retlw 0
251 ;sci.c: 73: {
252 0672 1218 bcf 24,4
253 ;sci.c: 75: CREN = 1;
254 0673 1618 bsf 24,4
255 ;sci.c: 76: return 1;
256 0674 3401 retlw 1
257
258 psect text4
259 0675 _sci_GetNinth
260 ;sci.c: 84: unsigned char
261 ;sci.c: 88: continue;
262 0675 l17
263 0675 0183 clrf 3 ;select bank 0
264 0676 1E8C btfss 12,5
265 0677 2E75 goto l17
266 ;sci.c: 90: return RX9D;
267 0678 3000 movlw 0
268 0679 1818 btfsc 24,0
269 067A 3001 movlw 1
270 ;sci.c: 91: }
271 067B 0008 return ;uses W
272
273 psect text5
274 067C _sci_GetFERR
275 ;sci.c: 93: unsigned char
276 ;sci.c: 97: continue;
277 067C l21
278 067C 0183 clrf 3 ;select bank 0
279 067D 1E8C btfss 12,5
280 067E 2E7C goto l21
281 ;sci.c: 99: return FERR;
282 067F 3000 movlw 0
283 0680 1918 btfsc 24,2
284 0681 3001 movlw 1
285 ;sci.c: 100: }
286 0682 0008 return ;uses W
287
288 psect text6
289 0000
290 0000
291 0000
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -