📄 mchpusb.lst
字号:
void C:\mcc18\src\traditional\startup\c018i.c
_do_cinit (void) C:\mcc18\src\traditional\startup\c018i.c
{ C:\mcc18\src\traditional\startup\c018i.c
/* we'll make the assumption in the following code that these statics C:\mcc18\src\traditional\startup\c018i.c
* will be allocated into the same bank. C:\mcc18\src\traditional\startup\c018i.c
*/ C:\mcc18\src\traditional\startup\c018i.c
static short long prom; C:\mcc18\src\traditional\startup\c018i.c
static unsigned short curr_byte; C:\mcc18\src\traditional\startup\c018i.c
static unsigned short curr_entry; C:\mcc18\src\traditional\startup\c018i.c
static short long data_ptr; C:\mcc18\src\traditional\startup\c018i.c
C:\mcc18\src\traditional\startup\c018i.c
// Initialized data... C:\mcc18\src\traditional\startup\c018i.c
001776 0e2a MOVLW 0x2a TBLPTR = (short long)&_cinit; C:\mcc18\src\traditional\startup\c018i.c
001778 6ef6 MOVWF 0xf6,0x0
00177a 0e08 MOVLW 0x8
00177c 6ef7 MOVWF 0xf7,0x0
00177e 0e00 MOVLW 0x0
001780 6ef8 MOVWF 0xf8,0x0
_asm C:\mcc18\src\traditional\startup\c018i.c
001782 0101 MOVLB 0x1 movlb data_ptr C:\mcc18\src\traditional\startup\c018i.c
001784 0009 TBLRDPOSTINC tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
001786 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\mcc18\src\traditional\startup\c018i.c
001788 6f11 MOVWF 0x11,0x1 movwf curr_entry, 1 C:\mcc18\src\traditional\startup\c018i.c
00178a 0009 TBLRDPOSTINC tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
00178c 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\mcc18\src\traditional\startup\c018i.c
00178e 6f12 MOVWF 0x12,0x1 movwf curr_entry+1, 1 C:\mcc18\src\traditional\startup\c018i.c
_endasm C:\mcc18\src\traditional\startup\c018i.c
//while (curr_entry) C:\mcc18\src\traditional\startup\c018i.c
//{ C:\mcc18\src\traditional\startup\c018i.c
test: C:\mcc18\src\traditional\startup\c018i.c
_asm C:\mcc18\src\traditional\startup\c018i.c
001790 e103 BNZ 0x1798 bnz 3 C:\mcc18\src\traditional\startup\c018i.c
001792 6711 TSTFSZ 0x11,0x1 tstfsz curr_entry, 1 C:\mcc18\src\traditional\startup\c018i.c
001794 d001 BRA 0x1798 bra 1 C:\mcc18\src\traditional\startup\c018i.c
_endasm C:\mcc18\src\traditional\startup\c018i.c
001796 d03d BRA 0x1812 goto done; C:\mcc18\src\traditional\startup\c018i.c
/* Count down so we only have to look up the data in _cinit C:\mcc18\src\traditional\startup\c018i.c
* once. C:\mcc18\src\traditional\startup\c018i.c
* C:\mcc18\src\traditional\startup\c018i.c
* At this point we know that TBLPTR points to the top of the current C:\mcc18\src\traditional\startup\c018i.c
* entry in _cinit, so we can just start reading the from, to, and C:\mcc18\src\traditional\startup\c018i.c
* size values. C:\mcc18\src\traditional\startup\c018i.c
*/ C:\mcc18\src\traditional\startup\c018i.c
_asm C:\mcc18\src\traditional\startup\c018i.c
/* read the source address */ C:\mcc18\src\traditional\startup\c018i.c
001798 0009 TBLRDPOSTINC tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
00179a 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\mcc18\src\traditional\startup\c018i.c
00179c 6f0c MOVWF 0xc,0x1 movwf prom, 1 C:\mcc18\src\traditional\startup\c018i.c
00179e 0009 TBLRDPOSTINC tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
0017a0 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\mcc18\src\traditional\startup\c018i.c
0017a2 6f0d MOVWF 0xd,0x1 movwf prom+1, 1 C:\mcc18\src\traditional\startup\c018i.c
0017a4 0009 TBLRDPOSTINC tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
0017a6 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\mcc18\src\traditional\startup\c018i.c
0017a8 6f0e MOVWF 0xe,0x1 movwf prom+2, 1 C:\mcc18\src\traditional\startup\c018i.c
/* skip a byte since it's stored as a 32bit int */ C:\mcc18\src\traditional\startup\c018i.c
0017aa 0009 TBLRDPOSTINC tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
/* read the destination address directly into FSR0 */ C:\mcc18\src\traditional\startup\c018i.c
0017ac 0009 TBLRDPOSTINC tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
0017ae 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\mcc18\src\traditional\startup\c018i.c
0017b0 6ee9 MOVWF 0xe9,0x0 movwf FSR0L, 0 C:\mcc18\src\traditional\startup\c018i.c
0017b2 0009 TBLRDPOSTINC tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
0017b4 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\mcc18\src\traditional\startup\c018i.c
0017b6 6eea MOVWF 0xea,0x0 movwf FSR0H, 0 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
0017b8 0009 TBLRDPOSTINC tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
0017ba 0009 TBLRDPOSTINC tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
/* read the destination address directly into FSR0 */ C:\mcc18\src\traditional\startup\c018i.c
0017bc 0009 TBLRDPOSTINC tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
0017be 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\mcc18\src\traditional\startup\c018i.c
0017c0 6f0f MOVWF 0xf,0x1 movwf curr_byte, 1 C:\mcc18\src\traditional\startup\c018i.c
0017c2 0009 TBLRDPOSTINC tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
0017c4 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\mcc18\src\traditional\startup\c018i.c
0017c6 6f10 MOVWF 0x10,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
0017c8 0009 TBLRDPOSTINC tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
0017ca 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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -