📄 uart.lst
字号:
HI-TECH Software PICC Macro Assembler V8.05PL1
Serial number: HCPIC-90508 Thu Nov 8 13:04:20 2007
Licensed to: ONE
1 processor 16F648A
2 opt pw 79
3 psect __Z90508RS_,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 text0,local,class=CODE,delta=2
7 psect text1,local,class=CODE,delta=2
8 psect text2,local,class=CODE,delta=2
9 psect text3,local,class=CODE,delta=2
10 psect text8,local,class=CODE,delta=2
11 psect rbss_0,global,class=BANK0,space=1,delta=
+ 1
12 psect rbss_1,global,class=BANK1,space=1,delta=
+ 1
13 psect temp,global,ovrld,class=BANK0,space=1,de
+ lta=1
14 0000
15 0000
16 0000
17 0000
18 0000
19 0000
20 0000
21 0000
22 0000
23 0000
24
25 psect __Z90508RS_
26 0000'
27 0000'
28
29 psect rdata_0
30 0000' _LocalAddr
31 0000' ds 1
32 0000 _ClearBus$ClearLength set ?_ClearBus
33
34 psect idata_0
35 0000' 3401 retlw 1
36
37 psect text0
38 0000' _ClearBus
39 ; _p_cleararray assigned to ?a_ClearBus+0
40 0000 _ClearBus$p_cleararray set ?a_ClearBus
41 ;_p_cleararray stored from w
42 0000' 0183 clrf 3 ;select bank 0
43 0001' 0080' movwf ?a_ClearBus
44 0002' l8
45 ;uart.c: 32: do
46 ;uart.c: 33: {
47 0002' 0800' movf ?a_ClearBus,w
48 0003' 0084 movwf 4
49 0004' 1383 bcf 3,7
50 0005' 0180 clrf 0
51 0006' 0A80' incf ?a_ClearBus
52 ;uart.c: 35: }
53 0007' 0B80' decfsz ?_ClearBus
54 0008' 2800' goto l8
55 0009' 0008 return
56
57 psect text1
58 ;uart.c: 41: void Uart_init(void)
59 ;uart.c: 42: {
60 0000' _Uart_init
61 ; _BAUD assigned to ?a_Uart_init+0
62 0000 _Uart_init$BAUD set ?a_Uart_init
63 ;uart.c: 43: uint BAUD;
64 0000' 3006 movlw 6
65 0001' 1683 bsf 3,5
66 0002' 1303 bcf 3,6 ;carry unused
67 0003' 0486 iorwf 6 ;volatile
68 ;uart.c: 45: RBPU = 0;
69 0004' 1381 bcf 1,7
70 ;uart.c: 46: switch (1)
71 0005' 2800' goto l11
72 0006' l12
73 ;uart.c: 47: {
74 0006' 30C0 movlw 192
75 0007' 1283 bcf 3,5
76 0008' 0080' movwf ?a_Uart_init
77 0009' 3012 movlw 18
78 000A' 2800' goto L5
79 000B' l13
80 ;uart.c: 49: case 1: BAUD = 9600; break;
81 000B' 3080 movlw 128
82 000C' 1283 bcf 3,5
83 000D' 0080' movwf ?a_Uart_init
84 000E' 3025 movlw 37
85 000F' 2800' goto L5
86 0010' l14
87 ;uart.c: 50: case 2: BAUD = 19200; break;
88 0010' 1283 bcf 3,5
89 0011' 0180' clrf ?a_Uart_init
90 0012' 304B movlw 75
91 0013' 2800' goto L5
92 ;uart.c: 51: case 3: BAUD = 38400; break;
93 0014' l16
94 ;uart.c: 52: case 4: BAUD = 57600; break;
95 0014' 1283 bcf 3,5
96 0015' 0180' clrf ?a_Uart_init
97 0016' 30E1 movlw 225
98 0017' 2800' goto L5
99 0018' l11
100 0018' 3001 movlw 1
101 0019' 0082' movwf btemp+2
102 001A' 0183' clrf btemp+3
103 001B' 2800' goto l30003
104 001C' l30004
105 001C' 0802' movf btemp+2,w
106 001D' 1903 btfsc 3,2
107 001E' 2800' goto l12
108 001F' 3A01 xorlw 1
109 0020' 1903 btfsc 3,2
110 0021' 2800' goto l13
111 0022' 3A03 xorlw 3
112 0023' 1903 btfsc 3,2
113 0024' 2800' goto l14
114 0025' 3A01 xorlw 1
115 0026' 1903 btfsc 3,2
116 0027' 2800' goto l17
117 0028' 3A07 xorlw 7
118 0029' 1903 btfsc 3,2
119 002A' 2800' goto l16
120 002B' 2800' goto l17
121 002C' l30003
122 002C' 0803' movf btemp+3,w
123 002D' 1903 btfsc 3,2
124 002E' 2800' goto l30004
125 002F' l17
126 ;uart.c: 53: default: BAUD = 38400; break;
127 002F' 1283 bcf 3,5
128 0030' 0180' clrf ?a_Uart_init
129 0031' 3096 movlw 150
130 0032' L5
131 0032' 0081' movwf ?a_Uart_init+1
132 ;uart.c: 55: SPBRG = 8000000/BAUD/16-1;
133 0033' 0800' movf ?a_Uart_init,w
134 0034' 0084' movwf btemp+4
135 0035' 0801' movf ?a_Uart_init+1,w
136 0036' 0085' movwf btemp+5
137 0037' 0186' clrf btemp+6
138 0038' 0187' clrf btemp+7
139 0039' 0180' clrf btemp
140 003A' 3012 movlw 18
141 003B' 0081' movwf btemp+1
142 003C' 307A movlw 122
143 003D' 0082' movwf btemp+2
144 003E' 3000 movlw 0
145 003F' 0183' clrf btemp+3
146 0040' 118A' 2000' fcall aldiv
147 0042' 3010 movlw 16
148 0043' 0084' movwf btemp+4
149 0044' 3000 movlw 0
150 0045' 0185' clrf btemp+5
151 0046' 0186' clrf btemp+6
152 0047' 0187' clrf btemp+7
153 0048' 118A' 2000' fcall aldiv
154 004A' 0300' decf btemp,w
155 004B' 1683 bsf 3,5
156 004C' 0099 movwf 25
157 ;uart.c: 56: FrameOverCou = (uchar)(1000.0*40/B
+ AUD);
158 004D' 1283 bcf 3,5
159 004E' 0801' movf ?a_Uart_init+1,w
160 004F' 0081' movwf btemp+1
161 0050' 0800' movf ?a_Uart_init,w
162 0051' 0080' movwf btemp
163 0052' 118A' 2000' fcall lwtoft
164 0054' 0800' movf btemp,w
165 0055' 0083' movwf btemp+3
166 0056' 0801' movf btemp+1,w
167 0057' 0084' movwf btemp+4
168 0058' 0802' movf btemp+2,w
169 0059' 0085' movwf btemp+5
170 005A' 3040 movlw 64
171 005B' 0080' movwf btemp
172 005C' 301C movlw 28
173 005D' 0081' movwf btemp+1
174 005E' 3047 movlw 71
175 005F' 0082' movwf btemp+2
176 0060' 118A' 2000' fcall ftdiv
177 0062' 118A' 2000' 118A' fcall fttol
178 0065' 0800' movf btemp,w
179 0066' 0080' movwf _FrameOverCou
180 ;uart.c: 57: FrameOverCou += 1;
181 0067' 0A80' incf _FrameOverCou
182 ;uart.c: 58: TXSTA = 0b10000100;
183 0068' 3084 movlw -124
184 0069' 1683 bsf 3,5
185 006A' 0098 movwf 24 ;volatile
186 ;uart.c: 59: RCSTA = 0b00100000;
187 006B' 3020 movlw 32
188 006C' 1283 bcf 3,5
189 006D' 0098 movwf 24 ;volatile
190 ;uart.c: 60: RX9 = 1;
191 006E' 1718 bsf 24,6
192 ;uart.c: 61: TX9 = 1;
193 006F' 1683 bsf 3,5
194 0070' 1718 bsf 24,6
195 ;uart.c: 63: SPEN = 1;
196 0071' 1283 bcf 3,5
197 0072' 1798 bsf 24,7
198 ;uart.c: 66: CREN = 1;
199 0073' 1618 bsf 24,4
200 ;uart.c: 67: RCIE = 1;
201 0074' 1683 bsf 3,5
202 0075' 168C bsf 12,5
203 ;uart.c: 70: receCount = 0;
204 0076' 0180' clrf _receCount^(0+128) ;volatile
205 ;uart.c: 71: }
206 0077' 1283 bcf 3,5
207 0078' 0008 return
208
209 psect text2
210 ;uart.c: 75: void beginSend(void)
211 ;uart.c: 76: {
212 0000' _beginSend
213 ;uart.c: 78: sendPosi = 0;
214 0000' 1683 bsf 3,5
215 0001' 1303 bcf 3,6 ;carry unused
216 0002' 0180' clrf _sendPosi^(0+128) ;volatile
217 ;uart.c: 79: if(sendCount > 1)
218 0003' 3002 movlw 2
219 0004' 0200' subwf _sendCount^(0+128),w ;volatile
220 0005' 1803 btfsc 3,0
221 ;uart.c: 80: sendCount--;
222 0006' 0380' decf _sendCount^(0+128) ;volatile
223 ;uart.c: 82: TXREG = sendBuf[0];
224 0007' 0800' movf _sendBuf^(0+128),w
225 0008' 1283 bcf 3,5
226 0009' 0099 movwf 25 ;volatile
227 ;uart.c: 83: TXIE = 1;
228 000A' 1683 bsf 3,5
229 000B' 160C bsf 12,4
230 ;uart.c: 84: TXEN = 1;
231 000C' 1698 bsf 24,5
232 ;uart.c: 90: }
233 000D' 1283 bcf 3,5
234 000E' 0008 return
235 000F' _CRC16
236 ; _data assigned to ?a_CRC16+0
237 0000 _CRC16$data set ?a_CRC16
238 ; _CH assigned to ?a_CRC16+1
239 0000 _CRC16$CH set ?a_CRC16+1
240 ; _CL assigned to ?a_CRC16+2
241 0000 _CRC16$CL set ?a_CRC16+2
242 ; _SaveHi assigned to ?a_CRC16+3
243 0000 _CRC16$SaveHi set ?a_CRC16+3
244 ; _SaveLo assigned to ?a_CRC16+4
245 0000 _CRC16$SaveLo set ?a_CRC16+4
246 ; _CRC16Hi assigned to ?a_CRC16+5
247 0000 _CRC16$CRC16Hi set ?a_CRC16+5
248 ; _CRC16Lo assigned to ?a_CRC16+6
249 0000 _CRC16$CRC16Lo set ?a_CRC16+6
250 ; _Flag assigned to ?a_CRC16+7
251 0000 _CRC16$Flag set ?a_CRC16+7
252 ; _i assigned to ?a_CRC16+9
253 0000 _CRC16$i set ?a_CRC16+9
254 ;_data stored from w
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -