📄 gprs.lst
字号:
C:\mcc18\src\traditional\startup\c018i.c
// Initialized data... C:\mcc18\src\traditional\startup\c018i.c
002d4a 0e2a MOVLW 0x2a TBLPTR = (short long)&_cinit; C:\mcc18\src\traditional\startup\c018i.c
002d4c 6ef6 MOVWF 0xf6,0x0
002d4e 0e00 MOVLW 0x0
002d50 6ef7 MOVWF 0xf7,0x0
002d52 0e00 MOVLW 0x0
002d54 6ef8 MOVWF 0xf8,0x0
_asm C:\mcc18\src\traditional\startup\c018i.c
002d56 0103 MOVLB 0x3 movlb data_ptr C:\mcc18\src\traditional\startup\c018i.c
002d58 0009 TBLRDPOSTINC tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
002d5a 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\mcc18\src\traditional\startup\c018i.c
002d5c 6ffa MOVWF 0xfa,0x1 movwf curr_entry, 1 C:\mcc18\src\traditional\startup\c018i.c
002d5e 0009 TBLRDPOSTINC tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
002d60 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\mcc18\src\traditional\startup\c018i.c
002d62 6ffb MOVWF 0xfb,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
002d64 e103 BNZ 0x2d6c bnz 3 C:\mcc18\src\traditional\startup\c018i.c
002d66 67fa TSTFSZ 0xfa,0x1 tstfsz curr_entry, 1 C:\mcc18\src\traditional\startup\c018i.c
002d68 d001 BRA 0x2d6c bra 1 C:\mcc18\src\traditional\startup\c018i.c
_endasm C:\mcc18\src\traditional\startup\c018i.c
002d6a d03d BRA 0x2de6 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
002d6c 0009 TBLRDPOSTINC tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
002d6e 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\mcc18\src\traditional\startup\c018i.c
002d70 6ff5 MOVWF 0xf5,0x1 movwf prom, 1 C:\mcc18\src\traditional\startup\c018i.c
002d72 0009 TBLRDPOSTINC tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
002d74 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\mcc18\src\traditional\startup\c018i.c
002d76 6ff6 MOVWF 0xf6,0x1 movwf prom+1, 1 C:\mcc18\src\traditional\startup\c018i.c
002d78 0009 TBLRDPOSTINC tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
002d7a 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\mcc18\src\traditional\startup\c018i.c
002d7c 6ff7 MOVWF 0xf7,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
002d7e 0009 TBLRDPOSTINC tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
/* read the destination address directly into FSR0 */ C:\mcc18\src\traditional\startup\c018i.c
002d80 0009 TBLRDPOSTINC tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
002d82 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\mcc18\src\traditional\startup\c018i.c
002d84 6ee9 MOVWF 0xe9,0x0 movwf FSR0L, 0 C:\mcc18\src\traditional\startup\c018i.c
002d86 0009 TBLRDPOSTINC tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
002d88 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\mcc18\src\traditional\startup\c018i.c
002d8a 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
002d8c 0009 TBLRDPOSTINC tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
002d8e 0009 TBLRDPOSTINC tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
/* read the destination address directly into FSR0 */ C:\mcc18\src\traditional\startup\c018i.c
002d90 0009 TBLRDPOSTINC tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
002d92 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\mcc18\src\traditional\startup\c018i.c
002d94 6ff8 MOVWF 0xf8,0x1 movwf curr_byte, 1 C:\mcc18\src\traditional\startup\c018i.c
002d96 0009 TBLRDPOSTINC tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
002d98 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\mcc18\src\traditional\startup\c018i.c
002d9a 6ff9 MOVWF 0xf9,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
002d9c 0009 TBLRDPOSTINC tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
002d9e 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
002da0 cff6 MOVFF 0xff6,0x3fc data_ptr = TBLPTR; C:\mcc18\src\traditional\startup\c018i.c
002da2 f3fc
002da4 cff7 MOVFF 0xff7,0x3fd
002da6 f3fd
002da8 cff8 MOVFF 0xff8,0x3fe
002daa f3fe
C:\mcc18\src\traditional\startup\c018i.c
/* now assign the source address to the table pointer */ C:\mcc18\src\traditional\startup\c018i.c
002dac c3f5 MOVFF 0x3f5,0xff6 TBLPTR = prom; C:\mcc18\src\traditional\startup\c018i.c
002dae fff6
002db0 c3f6 MOVFF 0x3f6,0xff7
002db2 fff7
002db4 c3f7 MOVFF 0x3f7,0xff8
002db6 fff8
C:\mcc18\src\traditional\startup\c018i.c
/* do the copy loop */ C:\mcc18\src\traditional\startup\c018i.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -