📄 fg020214drv.lst
字号:
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
TBLPTR = (short long)&_cinit; C:\mcc18\src\traditional\startup\c018i.c
005f06 0e2a MOVLW 0x2a _asm C:\mcc18\src\traditional\startup\c018i.c
005f08 6ef6 MOVWF 0xf6,0x0
005f0a 0e00 MOVLW 0x0
005f0c 6ef7 MOVWF 0xf7,0x0
005f0e 0e00 MOVLW 0x0
005f10 6ef8 MOVWF 0xf8,0x0
movlb data_ptr C:\mcc18\src\traditional\startup\c018i.c
005f12 0100 MOVLB 0x0 tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
005f14 0009 TBLRDPOSTINC movf TABLAT, 0, 0 C:\mcc18\src\traditional\startup\c018i.c
005f16 50f5 MOVF 0xf5,0x0,0x0 movwf curr_entry, 1 C:\mcc18\src\traditional\startup\c018i.c
005f18 6f65 MOVWF 0x65,0x1 tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
005f1a 0009 TBLRDPOSTINC movf TABLAT, 0, 0 C:\mcc18\src\traditional\startup\c018i.c
005f1c 50f5 MOVF 0xf5,0x0,0x0 movwf curr_entry+1, 1 C:\mcc18\src\traditional\startup\c018i.c
005f1e 6f66 MOVWF 0x66,0x1 _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
bnz 3 C:\mcc18\src\traditional\startup\c018i.c
005f20 e103 BNZ 0x5f28 tstfsz curr_entry, 1 C:\mcc18\src\traditional\startup\c018i.c
005f22 6765 TSTFSZ 0x65,0x1 bra 1 C:\mcc18\src\traditional\startup\c018i.c
005f24 d001 BRA 0x5f28 _endasm C:\mcc18\src\traditional\startup\c018i.c
goto done; C:\mcc18\src\traditional\startup\c018i.c
005f26 d03d BRA 0x5fa2 /* 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
tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
005f28 0009 TBLRDPOSTINC movf TABLAT, 0, 0 C:\mcc18\src\traditional\startup\c018i.c
005f2a 50f5 MOVF 0xf5,0x0,0x0 movwf prom, 1 C:\mcc18\src\traditional\startup\c018i.c
005f2c 6f60 MOVWF 0x60,0x1 tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
005f2e 0009 TBLRDPOSTINC movf TABLAT, 0, 0 C:\mcc18\src\traditional\startup\c018i.c
005f30 50f5 MOVF 0xf5,0x0,0x0 movwf prom+1, 1 C:\mcc18\src\traditional\startup\c018i.c
005f32 6f61 MOVWF 0x61,0x1 tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
005f34 0009 TBLRDPOSTINC movf TABLAT, 0, 0 C:\mcc18\src\traditional\startup\c018i.c
005f36 50f5 MOVF 0xf5,0x0,0x0 movwf prom+2, 1 C:\mcc18\src\traditional\startup\c018i.c
005f38 6f62 MOVWF 0x62,0x1 /* skip a byte since it's stored as a 32bit int */ C:\mcc18\src\traditional\startup\c018i.c
tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
005f3a 0009 TBLRDPOSTINC /* read the destination address directly into FSR0 */ C:\mcc18\src\traditional\startup\c018i.c
tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
005f3c 0009 TBLRDPOSTINC movf TABLAT, 0, 0 C:\mcc18\src\traditional\startup\c018i.c
005f3e 50f5 MOVF 0xf5,0x0,0x0 movwf FSR0L, 0 C:\mcc18\src\traditional\startup\c018i.c
005f40 6ee9 MOVWF 0xe9,0x0 tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
005f42 0009 TBLRDPOSTINC movf TABLAT, 0, 0 C:\mcc18\src\traditional\startup\c018i.c
005f44 50f5 MOVF 0xf5,0x0,0x0 movwf FSR0H, 0 C:\mcc18\src\traditional\startup\c018i.c
005f46 6eea MOVWF 0xea,0x0 /* skip two bytes since it's stored as a 32bit int */ C:\mcc18\src\traditional\startup\c018i.c
tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
005f48 0009 TBLRDPOSTINC tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
005f4a 0009 TBLRDPOSTINC /* read the destination address directly into FSR0 */ C:\mcc18\src\traditional\startup\c018i.c
tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
005f4c 0009 TBLRDPOSTINC movf TABLAT, 0, 0 C:\mcc18\src\traditional\startup\c018i.c
005f4e 50f5 MOVF 0xf5,0x0,0x0 movwf curr_byte, 1 C:\mcc18\src\traditional\startup\c018i.c
005f50 6f63 MOVWF 0x63,0x1 tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
005f52 0009 TBLRDPOSTINC movf TABLAT, 0, 0 C:\mcc18\src\traditional\startup\c018i.c
005f54 50f5 MOVF 0xf5,0x0,0x0 movwf curr_byte+1, 1 C:\mcc18\src\traditional\startup\c018i.c
005f56 6f64 MOVWF 0x64,0x1 /* skip two bytes since it's stored as a 32bit int */ C:\mcc18\src\traditional\startup\c018i.c
tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
005f58 0009 TBLRDPOSTINC tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
005f5a 0009 TBLRDPOSTINC _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
data_ptr = TBLPTR; C:\mcc18\src\traditional\startup\c018i.c
005f5c cff6 MOVFF 0xff6,0x67 C:\mcc18\src\traditional\startup\c018i.c
005f5e f067
005f60 cff7 MOVFF 0xff7,0x68
005f62 f068
005f64 cff8 MOVFF 0xff8,0x69
005f66 f069
/* now assign the source address to the table pointer */ C:\mcc18\src\traditional\startup\c018i.c
TBLPTR = prom; C:\mcc18\src\traditional\startup\c018i.c
005f68 c060 MOVFF 0x60,0xff6 C:\mcc18\src\traditional\startup\c018i.c
005f6a fff6
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -