📄 sl811.lst
字号:
211 ;sl811.c: 60: value = PORTD;
212 07EA 5083 movf 3971,w,c ;volatile
213 07EC 6ED9 movwf fsr2l,c
214 ;sl811.c: 61: RE0 = 1;
215 07EE 8084 bsf 3972,0,c ;volatile
216 ;sl811.c: 64: TRISD = 0xFF;
217 07F0 6895 setf 3989,c ;volatile
218 ;sl811.c: 65: return value;
219 07F2 50D9 movf fsr2l,w,c
220 ;sl811.c: 66: }
221 07F4 0012 return
222 07F6 FFFF dw 65535
223 07F8 D7EE goto f4452
224 07FA 00FA dw ?_sl811_write_buf
225 07FC _sl811_write_buf:
226 07FC FFFF dw 65535
227 07FE f4462:
228 0000
229 ; _adr loaded to fsr2l
230 07FE 6ED9 movwf fsr2l,c
231 ;sl811.c: 73: unsigned char i;
232 0800 C0FA FFE9 movff ?_sl811_write_buf,fsr0l
233 0804 C0FB FFEA movff ?_sl811_write_buf+1,fsr0h
234 0808 50EF movf indf0,w,c
235 080A 0100 movlb __Lparam shr (0+8)
236 080C 6FFE movwf ?_sl811_write^(__Lparam& (0+65280))
237 080E 50D9 movf fsr2l,w,c
238 0810 DFD0 call _sl811_write
239 ;sl811.c: 75: size--;
240 0812 0E01 movlw 1
241 0814 0100 movlb __Lparam shr (0+8)
242 0816 07FC decf (?_sl811_write_buf+2)^(__Lparam& (0+65280)
+ ),f
243 ;sl811.c: 76: i = 1;
244 0818 6FFD movwf ?a_sl811_write_buf^(__Lparam& (0+65280))
245 ;sl811.c: 77: while(size != 0)
246 081A l4:
247 ;sl811.c: 82: }
248 081A 0100 movlb __Lparam shr (0+8)
249 081C 51FC movf (?_sl811_write_buf+2)^(__Lparam& (0+65280)
+ ),w
250 081E B4D8 btfsc status,2,c
251 0820 D00C goto u10
252 ;sl811.c: 78: {
253 0822 51FD movf ?a_sl811_write_buf^(__Lparam& (0+65280)),w
254 0824 25FA addwf ?_sl811_write_buf^(__Lparam& (0+65280)),w
255 0826 6EE9 movwf fsr0l,c
256 0828 0E00 movlw 0
257 082A 21FB addwfc (?_sl811_write_buf+1)^(__Lparam& (0+6528
+ 0)),w
258 082C 6EEA movwf fsr0h
259 082E 50EF movf indf0,w,c
260 0830 D829 call _sl811_write_next
261 ;sl811.c: 80: i++;
262 0832 0100 movlb __Lparam shr (0+8)
263 0834 2BFD incf ?a_sl811_write_buf^(__Lparam& (0+65280)),f
264 ;sl811.c: 81: size--;
265 0836 07FC decf (?_sl811_write_buf+2)^(__Lparam& (0+65280)
+ ),f
266 0838 D7F0 goto l4
267 083A u10:
268 ;sl811.c: 83: }
269 083A 0012 return
270 083C FFFF dw 65535
271 083E D7DF goto f4462
272 0840 00FC dw ?_sl811_read_buf
273 0842 _sl811_read_buf:
274 0842 FFFF dw 65535
275 0844 f4482:
276 0000
277 ; _adr loaded to fsr1l
278 0844 6EE1 movwf fsr1l,c
279 ;sl811.c: 90: unsigned char i;
280 0846 DFC6 call _sl811_read
281 0848 C0FC FFE9 movff ?_sl811_read_buf,fsr0l
282 084C C0FD FFEA movff ?_sl811_read_buf+1,fsr0h
283 0850 6EEF movwf indf0,c
284 ;sl811.c: 92: size --;
285 0852 0E01 movlw 1
286 0854 0100 movlb __Lparam shr (0+8)
287 0856 07FE decf (?_sl811_read_buf+2)^(__Lparam& (0+65280))
+ ,f
288 ;sl811.c: 93: i = 1;
289 0858 6FFF movwf ?a_sl811_read_buf^(__Lparam& (0+65280))
290 ;sl811.c: 94: while(size != 0)
291 085A l8:
292 ;sl811.c: 99: }
293 085A 0100 movlb __Lparam shr (0+8)
294 085C 51FE movf (?_sl811_read_buf+2)^(__Lparam& (0+65280))
+ ,w
295 085E B4D8 btfsc status,2,c
296 0860 D00E goto u20
297 ;sl811.c: 95: {
298 0862 D81B call _sl811_read_next ;wreg free
299 0864 6E00 movwf btemp
300 0866 0100 movlb __Lparam shr (0+8)
301 0868 51FF movf ?a_sl811_read_buf^(__Lparam& (0+65280)),w
302 086A 25FC addwf ?_sl811_read_buf^(__Lparam& (0+65280)),w
303 086C 6EE9 movwf fsr0l,c
304 086E 0E00 movlw 0
305 0870 21FD addwfc (?_sl811_read_buf+1)^(__Lparam& (0+65280
+ )),w
306 0872 6EEA movwf fsr0h
307 0874 C000 FFEF movff btemp,indf0
308 ;sl811.c: 97: i++;
309 0878 2BFF incf ?a_sl811_read_buf^(__Lparam& (0+65280)),f
310 ;sl811.c: 98: size--;
311 087A 07FE decf (?_sl811_read_buf+2)^(__Lparam& (0+65280))
+ ,f
312 087C D7EE goto l8
313 087E u20:
314 ;sl811.c: 100: }
315 087E 0012 return
316 0880 FFFF dw 65535
317 0882 D7E0 goto f4482
318 ;sl811.c: 105: void sl811_write_next(unsigned ch
+ ar value)
319 ;sl811.c: 106: {
320 0884 _sl811_write_next:
321 0884 FFFF dw 65535
322 0886 f4502:
323 0000
324 ;sl811.c: 107: RE2 = 1;
325 0886 8484 bsf 3972,2,c ;volatile
326 ;sl811.c: 110: TRISD = 0x00;
327 0888 6A95 clrf 3989,c ;volatile
328 ;sl811.c: 111: PORTD = value;
329 088A 6E83 movwf 3971,c ;volatile
330 ;sl811.c: 112: RE1 = 0;
331 088C 9284 bcf 3972,1,c ;volatile
332 ;sl811.c: 113: asm("nop");
333 088E F000 nop ;#
334 ;sl811.c: 114: RE1 = 1;
335 0890 8284 bsf 3972,1,c ;volatile
336 ;sl811.c: 117: TRISD = 0xFF;
337 0892 6895 setf 3989,c ;volatile
338 ;sl811.c: 118: }
339 0894 0012 return
340 0896 FFFF dw 65535
341 0898 D7F6 goto f4502
342 ;sl811.c: 123: unsigned char sl811_read_next(voi
+ d)
343 ;sl811.c: 124: {
344 089A _sl811_read_next:
345 089A FFFF dw 65535
346 089C f4512:
347 0000
348 ;sl811.c: 125: unsigned char value;
349 089C 8484 bsf 3972,2,c ;volatile
350 ;sl811.c: 129: TRISD = 0xFF;
351 089E 6895 setf 3989,c ;volatile
352 ;sl811.c: 130: RE0 = 0;
353 08A0 9084 bcf 3972,0,c ;volatile
354 ;sl811.c: 131: asm("nop");
355 08A2 F000 nop ;#
356 ;sl811.c: 132: value = PORTD;
357 08A4 5083 movf 3971,w,c ;volatile
358 08A6 6ED9 movwf fsr2l,c
359 ;sl811.c: 133: RE0 = 1;
360 08A8 8084 bsf 3972,0,c ;volatile
361 ;sl811.c: 135: return value;
362 ;sl811.c: 136: }
363 08AA 0012 return
364 08AC FFFF dw 65535
365 08AE D7F6 goto f4512
366 ;sl811.c: 141: unsigned char sl811_set_addr(void
+ )
367 ;sl811.c: 142: {
368 08B0 _sl811_set_addr:
369 08B0 FFFF dw 65535
370 08B2 f4522:
371 0000
372 ;sl811.c: 143: unsigned char tmp;
373 08B2 0100 movlb __Lparam shr (0+8)
374 08B4 6BFE clrf ?_sl811_write^(__Lparam& (0+65280))
375 08B6 0E10 movlw 16
376 08B8 DF7C call _sl811_write
377 ;sl811.c: 146: sl811_write_next(0x05);
378 08BA 0E05 movlw 5
379 08BC DFE3 call _sl811_write_next
380 ;sl811.c: 147: sl811_write_next(adr);
381 08BE C1B2 FFE8 movff _adr,wreg
382 08C2 DFE0 call _sl811_write_next
383 ;sl811.c: 148: sl811_write_next(0x00);
384 08C4 0E00 movlw 0
385 08C6 DFDE call _sl811_write_next
386 ;sl811.c: 149: sl811_write_next(0x00);
387 08C8 0E00 movlw 0
388 08CA DFDC call _sl811_write_next
389 ;sl811.c: 150: sl811_write_next(0x00);
390 08CC 0E00 movlw 0
391 08CE DFDA call _sl811_write_next
392 ;sl811.c: 151: sl811_write_next(0x00);
393 08D0 0E00 movlw 0
394 08D2 DFD8 call _sl811_write_next
395 ;sl811.c: 152: sl811_write_next(0x00);
396 08D4 0E00 movlw 0
397 08D6 DFD6 call _sl811_write_next
398 ;sl811.c: 154: sl811_write(0x01, 0x10);
399 08D8 0E10 movlw 16
400 08DA 0100 movlb __Lparam shr (0+8)
401 08DC 6FFE movwf ?_sl811_write^(__Lparam& (0+65280))
402 08DE 0E01 movlw 1
403 08E0 DF68 call _sl811_write
404 ;sl811.c: 155: sl811_write(0x02, 0x08);
405 08E2 0E08 movlw 8
406 08E4 0100 movlb __Lparam shr (0+8)
407 08E6 6FFE movwf ?_sl811_write^(__Lparam& (0+65280))
408 08E8 0E02 movlw 2
409 08EA DF63 call _sl811_write
410 ;sl811.c: 156: sl811_write(0x03, 0xD0);
411 08EC 0ED0 movlw 208
412 08EE 0100 movlb __Lparam shr (0+8)
413 08F0 6FFE movwf ?_sl811_write^(__Lparam& (0+65280))
414 08F2 0E03 movlw 3
415 08F4 DF5E call _sl811_write
416 ;sl811.c: 157: sl811_write(0x04, 0x00);
417 08F6 0100 movlb __Lparam shr (0+8)
418 08F8 6BFE clrf ?_sl811_write^(__Lparam& (0+65280))
419 08FA 0E04 movlw 4
420 08FC DF5A call _sl811_write
421 ;sl811.c: 159: sl811_write(0x0D, 0x01);
422 08FE 0E01 movlw 1
423 0900 0100 movlb __Lparam shr (0+8)
424 0902 6FFE movwf ?_sl811_write^(__Lparam& (0+65280))
425 0904 0E0D movlw 13
426 0906 DF55 call _sl811_write
427 ;sl811.c: 160: sl811_write(0x00, 0x27);
428 0908 0E27 movlw 39
429 090A 0100 movlb __Lparam shr (0+8)
430 090C 6FFE movwf ?_sl811_write^(__Lparam& (0+65280))
431 090E 0E00 movlw 0
432 0910 DF50 call _sl811_write
433 ;sl811.c: 161: for(tmp=255; tmp!= 0; tmp--)
434 ; _tmp allocated to fsr2l
435 0912 68D9 setf fsr2l,c
436 0914 l14:
437 ;sl811.c: 162: {
438 ;sl811.c: 163: asm("nop");
439 0914 F000 nop ;#
440 ;sl811.c: 164: }
441 0916 06D9 decf fsr2l,f,c
442 0918 50D9 movf fsr2l,w,c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -