📄 mcp2510.lst
字号:
HI-TECH Software PICC Macro Assembler V8.05PL1
Serial number: HCPIC-34349 Thu Oct 26 15:45:36 2006
Licensed to: ONE
1 processor 16F877A
2 opt pw 79
3 psect __Z34349RS_,global,delta=1
4 psect text0,local,class=CODE,delta=2
5 psect text1,local,class=CODE,delta=2
6 psect text2,local,class=CODE,delta=2
7 psect text7,local,class=CODE,delta=2
8 psect text9,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 __Z34349RS_
22 0190
23 0190
24
25 psect text0
26 ;mcp2510.h: 247: extern void mcp_read_can ( uch
+ ar buffer, uchar* ext, unsigned long* can_id,
27 ;mcp2510.h: 257: extern void mcp_write_can (uch
+ ar buffer, uchar ext, unsigned long can_id,
28 085E _mcp_reset
29 ;mcp2510.c: 32: SPI_mcp_reset();
30 085E 120A 158A 29C5 ljmp _SPI_mcp_reset
31
32 psect text1
33 01C1 _mcp_read
34 ; _MCPaddr assigned to ?a_mcp_read+0
35 0000 _mcp_read$MCPaddr set ?a_mcp_read
36 ; _loopCnt assigned to ?a_mcp_read+1
37 0000 _mcp_read$loopCnt set ?a_mcp_read+1
38 ;_MCPaddr stored from w
39 01C1 0183 clrf 3 ;select bank 0
40 01C2 00D4 movwf ?a_mcp_read
41 ;mcp2510.c: 41: uchar loopCnt;
42 01C3 120A 158A 205B fcall _SPI_mcp_select
43 ;mcp2510.c: 44: SPI_mcp_RD_address(MCPaddr);
44 01C6 0854 movf ?a_mcp_read,w
45 01C7 120A 158A 20FD fcall _SPI_mcp_RD_address
+ 120A 118A
46 ;mcp2510.c: 46: for (loopCnt=0; loopCnt < lengt
+ h; loopCnt++) {
47 01CC 01D5 clrf ?a_mcp_read+1
48 01CD 29DD goto l7
49 01CE l4
50 ;mcp2510.c: 48: *readdata = SPI_putch(MCPaddr);
51 01CE 0854 movf ?a_mcp_read,w
52 01CF 120A 158A 2089 fcall _SPI_putch
+ 120A 118A
53 01D4 00F0 movwf btemp
54 01D5 0852 movf ?_mcp_read,w
55 01D6 0084 movwf 4
56 01D7 1383 bcf 3,7
57 01D8 0870 movf btemp,w
58 01D9 0080 movwf 0
59 ;mcp2510.c: 51: MCPaddr++;
60 01DA 0AD4 incf ?a_mcp_read
61 ;mcp2510.c: 52: readdata++;
62 01DB 0AD2 incf ?_mcp_read
63 ;mcp2510.c: 53: }
64 01DC 0AD5 incf ?a_mcp_read+1
65 01DD l7
66 01DD 0853 movf ?_mcp_read+1,w
67 01DE 0255 subwf ?a_mcp_read+1,w
68 01DF 1C03 btfss 3,0
69 01E0 29CE goto l4
70 ;mcp2510.c: 55: SPI_mcp_unselect();
71 01E1 120A 158A 29C0 ljmp _SPI_mcp_unselect
72 01E4 _mcp_read_can_id
73 ; _mcp_addr assigned to ?a_mcp_read_can_id+0
74 0000 _mcp_read_can_id$mcp_addr set ?a_mcp_read_can_i
+ d
75 ; _tbufdata assigned to ?a_mcp_read_can_id+1
76 0000 _mcp_read_can_id$tbufdata set ?a_mcp_read_can_i
+ d+1
77 ;_mcp_addr stored from w
78 01E4 0183 clrf 3 ;select bank 0
79 01E5 00CD movwf ?a_mcp_read_can_id
80 ;mcp2510.c: 81: uchar tbufdata[4];
81 01E6 084B movf ?_mcp_read_can_id,w
82 01E7 0084 movwf 4
83 01E8 1383 bcf 3,7
84 01E9 0180 clrf 0
85 ;mcp2510.c: 83: *can_id = 0;
86 01EA 084C movf ?_mcp_read_can_id+1,w
87 01EB 0084 movwf 4
88 01EC 0180 clrf 0
89 01ED 0A84 incf 4
90 01EE 0180 clrf 0
91 01EF 0A84 incf 4
92 01F0 0180 clrf 0
93 01F1 0A84 incf 4
94 01F2 0180 clrf 0
95 ;mcp2510.c: 84: mcp_read( mcp_addr, tbufdata, 4
+ );
96 01F3 304E movlw ?a_mcp_read_can_id+1
97 01F4 00D2 movwf ?_mcp_read
98 01F5 3004 movlw 4
99 01F6 00D3 movwf ?_mcp_read+1
100 01F7 084D movf ?a_mcp_read_can_id,w
101 01F8 21C1 120A 118A fcall _mcp_read
102 ;mcp2510.c: 85: *can_id = (tbufdata[0]<<3) + (t
+ bufdata[1]>>5);
103 01FB 084E movf ?a_mcp_read_can_id+1,w
104 01FC 00F0 movwf btemp
105 01FD 01F1 clrf btemp+1
106 01FE 1003 bcf 3,0
107 01FF 0DF0 rlf btemp
108 0200 0DF1 rlf btemp+1
109 0201 1003 bcf 3,0
110 0202 0DF0 rlf btemp
111 0203 0DF1 rlf btemp+1
112 0204 1003 bcf 3,0
113 0205 0DF0 rlf btemp
114 0206 0DF1 rlf btemp+1
115 0207 084F movf ?a_mcp_read_can_id+2,w
116 0208 00F2 movwf btemp+2
117 0209 3005 movlw 5
118 020A 00F3 movwf btemp+3
119 020B u35
120 020B 1003 bcf 3,0
121 020C 0CF2 rrf btemp+2
122 020D 0BF3 decfsz btemp+3
123 020E 2A0B goto u35
124 020F 0872 movf btemp+2,w
125 0210 00F2 movwf btemp+2
126 0211 01F3 clrf btemp+3
127 0212 0870 movf btemp,w
128 0213 07F2 addwf btemp+2
129 0214 1803 btfsc 3,0
130 0215 0AF3 incf btemp+3
131 0216 0871 movf btemp+1,w
132 0217 07F3 addwf btemp+3
133 0218 0872 movf btemp+2,w
134 0219 00F0 movwf btemp
135 021A 0873 movf btemp+3,w
136 021B 00F1 movwf btemp+1
137 021C 3000 movlw 0
138 021D 1BF1 btfsc btemp+1,7
139 021E 30FF movlw 255
140 021F 00F2 movwf btemp+2
141 0220 00F3 movwf btemp+3
142 0221 084C movf ?_mcp_read_can_id+1,w
143 0222 0084 movwf 4
144 0223 1383 bcf 3,7
145 0224 0870 movf btemp,w
146 0225 0080 movwf 0
147 0226 0A84 incf 4
148 0227 0871 movf btemp+1,w
149 0228 0080 movwf 0
150 0229 0A84 incf 4
151 022A 0872 movf btemp+2,w
152 022B 0080 movwf 0
153 022C 0A84 incf 4
154 022D 0873 movf btemp+3,w
155 022E 0080 movwf 0
156 ;mcp2510.c: 86: if ( (tbufdata[1] & 0x08) == 0x
+ 08 ) {
157 022F 1DCF btfss ?a_mcp_read_can_id+2,3
158 0230 0008 return
159 ;mcp2510.c: 88: *can_id = (*can_id<<2) + (tbufd
+ ata[1] & 0x03);
160 0231 084C movf ?_mcp_read_can_id+1,w
161 0232 0084 movwf 4
162 0233 1383 bcf 3,7
163 0234 0800 movf 0,w
164 0235 00F0 movwf btemp
165 0236 0A84 incf 4
166 0237 0800 movf 0,w
167 0238 00F1 movwf btemp+1
168 0239 0A84 incf 4
169 023A 0800 movf 0,w
170 023B 00F2 movwf btemp+2
171 023C 0A84 incf 4
172 023D 0800 movf 0,w
173 023E 00F3 movwf btemp+3
174 023F 3002 movlw 2
175 0240 120A 158A 2093 fcall llsll
+ 120A 118A
176 0245 084F movf ?a_mcp_read_can_id+2,w
177 0246 3903 andlw 3
178 0247 00F4 movwf btemp+4
179 0248 01F5 clrf btemp+5
180 0249 01F6 clrf btemp+6
181 024A 01F7 clrf btemp+7
182 024B 0870 movf btemp,w
183 024C 0774 addwf btemp+4,w
184 024D 00F8 movwf btemp+8
185 024E 0875 movf btemp+5,w
186 024F 00F9 movwf btemp+9
187 0250 0871 movf btemp+1,w
188 0251 1803 btfsc 3,0
189 0252 0F71 incfsz btemp+1,w
190 0253 07F9 addwf btemp+9
191 0254 0876 movf btemp+6,w
192 0255 00FA movwf btemp+10
193 0256 0872 movf btemp+2,w
194 0257 1803 btfsc 3,0
195 0258 0F72 incfsz btemp+2,w
196 0259 07FA addwf btemp+10
197 025A 0877 movf btemp+7,w
198 025B 00FB movwf btemp+11
199 025C 0873 movf btemp+3,w
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -