📄 ex12_1.lst
字号:
0002f4 0009 TBLRDPOSTINC tblrdpostinc C:\MCC18\src\traditional\startup\c018i.c
0002f6 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\MCC18\src\traditional\startup\c018i.c
0002f8 6f84 MOVWF 0x84,0x1 movwf curr_byte+1, 1 C:\MCC18\src\traditional\startup\c018i.c
/* skip two bytes since it's stored as a 32bit int */ C:\MCC18\src\traditional\startup\c018i.c
0002fa 0009 TBLRDPOSTINC tblrdpostinc C:\MCC18\src\traditional\startup\c018i.c
0002fc 0009 TBLRDPOSTINC tblrdpostinc C:\MCC18\src\traditional\startup\c018i.c
_endasm C:\MCC18\src\traditional\startup\c018i.c
//prom = data_ptr->from; C:\MCC18\src\traditional\startup\c018i.c
//FSR0 = data_ptr->to; C:\MCC18\src\traditional\startup\c018i.c
//curr_byte = (unsigned short) data_ptr->size; C:\MCC18\src\traditional\startup\c018i.c
/* the table pointer now points to the next entry. Save it C:\MCC18\src\traditional\startup\c018i.c
* off since we'll be using the table pointer to do the copying C:\MCC18\src\traditional\startup\c018i.c
* for the entry. C:\MCC18\src\traditional\startup\c018i.c
*/ C:\MCC18\src\traditional\startup\c018i.c
0002fe cff6 MOVFF 0xff6,0x87 data_ptr = TBLPTR; C:\MCC18\src\traditional\startup\c018i.c
000300 f087
000302 cff7 MOVFF 0xff7,0x88
000304 f088
000306 cff8 MOVFF 0xff8,0x89
000308 f089
C:\MCC18\src\traditional\startup\c018i.c
/* now assign the source address to the table pointer */ C:\MCC18\src\traditional\startup\c018i.c
00030a c080 MOVFF 0x80,0xff6 TBLPTR = prom; C:\MCC18\src\traditional\startup\c018i.c
00030c fff6
00030e c081 MOVFF 0x81,0xff7
000310 fff7
000312 c082 MOVFF 0x82,0xff8
000314 fff8
C:\MCC18\src\traditional\startup\c018i.c
/* do the copy loop */ C:\MCC18\src\traditional\startup\c018i.c
_asm C:\MCC18\src\traditional\startup\c018i.c
// determine if we have any more bytes to copy C:\MCC18\src\traditional\startup\c018i.c
000316 0100 MOVLB 0x0 movlb curr_byte C:\MCC18\src\traditional\startup\c018i.c
000318 5383 MOVF 0x83,0x1,0x1 movf curr_byte, 1, 1 C:\MCC18\src\traditional\startup\c018i.c
copy_loop: C:\MCC18\src\traditional\startup\c018i.c
00031a e102 BNZ 0x320 bnz 2 // copy_one_byte C:\MCC18\src\traditional\startup\c018i.c
00031c 5384 MOVF 0x84,0x1,0x1 movf curr_byte + 1, 1, 1 C:\MCC18\src\traditional\startup\c018i.c
00031e e007 BZ 0x32e bz 7 // done_copying C:\MCC18\src\traditional\startup\c018i.c
C:\MCC18\src\traditional\startup\c018i.c
copy_one_byte: C:\MCC18\src\traditional\startup\c018i.c
000320 0009 TBLRDPOSTINC tblrdpostinc C:\MCC18\src\traditional\startup\c018i.c
000322 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\MCC18\src\traditional\startup\c018i.c
000324 6eee MOVWF 0xee,0x0 movwf POSTINC0, 0 C:\MCC18\src\traditional\startup\c018i.c
C:\MCC18\src\traditional\startup\c018i.c
// decrement byte counter C:\MCC18\src\traditional\startup\c018i.c
000326 0783 DECF 0x83,0x1,0x1 decf curr_byte, 1, 1 C:\MCC18\src\traditional\startup\c018i.c
000328 e2f8 BC 0x31a bc -8 // copy_loop C:\MCC18\src\traditional\startup\c018i.c
00032a 0784 DECF 0x84,0x1,0x1 decf curr_byte + 1, 1, 1 C:\MCC18\src\traditional\startup\c018i.c
00032c d7f9 BRA 0x320 bra -7 // copy_one_byte C:\MCC18\src\traditional\startup\c018i.c
C:\MCC18\src\traditional\startup\c018i.c
done_copying: C:\MCC18\src\traditional\startup\c018i.c
C:\MCC18\src\traditional\startup\c018i.c
_endasm C:\MCC18\src\traditional\startup\c018i.c
/* restore the table pointer for the next entry */ C:\MCC18\src\traditional\startup\c018i.c
00032e c087 MOVFF 0x87,0xff6 TBLPTR = data_ptr; C:\MCC18\src\traditional\startup\c018i.c
000330 fff6
000332 c088 MOVFF 0x88,0xff7
000334 fff7
000336 c089 MOVFF 0x89,0xff8
000338 fff8
/* next entry... */ C:\MCC18\src\traditional\startup\c018i.c
00033a 0100 MOVLB 0x0 curr_entry--; C:\MCC18\src\traditional\startup\c018i.c
00033c 0785 DECF 0x85,0x1,0x1
00033e 0e00 MOVLW 0x0
000340 5b86 SUBWFB 0x86,0x1,0x1
000342 d7bf BRA 0x2c2 goto test; C:\MCC18\src\traditional\startup\c018i.c
done: C:\MCC18\src\traditional\startup\c018i.c
; C:\MCC18\src\traditional\startup\c018i.c
000344 0012 RETURN 0x0 } C:\MCC18\src\traditional\startup\c018i.c
//********************************************************** D:\PIC\EX for C18\ex12_1_UART\ex12_1.c
//* Ex12_1_UART.c D:\PIC\EX for C18\ex12_1_UART\ex12_1.c
//********************************************************** D:\PIC\EX for C18\ex12_1_UART\ex12_1.c
#include <p18f4520.h> //
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -