📄 can_monitor.lst
字号:
C:\MCC18\src\traditional\startup\c018i.c
// Initialized data... C:\MCC18\src\traditional\startup\c018i.c
001a08 0e2a MOVLW 0x2a TBLPTR = (short long)&_cinit; C:\MCC18\src\traditional\startup\c018i.c
001a0a 6ef6 MOVWF 0xf6,0x0
001a0c 0e00 MOVLW 0x0
001a0e 6ef7 MOVWF 0xf7,0x0
001a10 0e00 MOVLW 0x0
001a12 6ef8 MOVWF 0xf8,0x0
_asm C:\MCC18\src\traditional\startup\c018i.c
001a14 0100 MOVLB 0x0 movlb data_ptr C:\MCC18\src\traditional\startup\c018i.c
001a16 0009 TBLRDPOSTINC tblrdpostinc C:\MCC18\src\traditional\startup\c018i.c
001a18 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\MCC18\src\traditional\startup\c018i.c
001a1a 6ff2 MOVWF 0xf2,0x1 movwf curr_entry, 1 C:\MCC18\src\traditional\startup\c018i.c
001a1c 0009 TBLRDPOSTINC tblrdpostinc C:\MCC18\src\traditional\startup\c018i.c
001a1e 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\MCC18\src\traditional\startup\c018i.c
001a20 6ff3 MOVWF 0xf3,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
001a22 e103 BNZ 0x1a2a bnz 3 C:\MCC18\src\traditional\startup\c018i.c
001a24 67f2 TSTFSZ 0xf2,0x1 tstfsz curr_entry, 1 C:\MCC18\src\traditional\startup\c018i.c
001a26 d001 BRA 0x1a2a bra 1 C:\MCC18\src\traditional\startup\c018i.c
_endasm C:\MCC18\src\traditional\startup\c018i.c
001a28 d03d BRA 0x1aa4 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
001a2a 0009 TBLRDPOSTINC tblrdpostinc C:\MCC18\src\traditional\startup\c018i.c
001a2c 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\MCC18\src\traditional\startup\c018i.c
001a2e 6fed MOVWF 0xed,0x1 movwf prom, 1 C:\MCC18\src\traditional\startup\c018i.c
001a30 0009 TBLRDPOSTINC tblrdpostinc C:\MCC18\src\traditional\startup\c018i.c
001a32 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\MCC18\src\traditional\startup\c018i.c
001a34 6fee MOVWF 0xee,0x1 movwf prom+1, 1 C:\MCC18\src\traditional\startup\c018i.c
001a36 0009 TBLRDPOSTINC tblrdpostinc C:\MCC18\src\traditional\startup\c018i.c
001a38 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\MCC18\src\traditional\startup\c018i.c
001a3a 6fef MOVWF 0xef,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
001a3c 0009 TBLRDPOSTINC tblrdpostinc C:\MCC18\src\traditional\startup\c018i.c
/* read the destination address directly into FSR0 */ C:\MCC18\src\traditional\startup\c018i.c
001a3e 0009 TBLRDPOSTINC tblrdpostinc C:\MCC18\src\traditional\startup\c018i.c
001a40 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\MCC18\src\traditional\startup\c018i.c
001a42 6ee9 MOVWF 0xe9,0x0 movwf FSR0L, 0 C:\MCC18\src\traditional\startup\c018i.c
001a44 0009 TBLRDPOSTINC tblrdpostinc C:\MCC18\src\traditional\startup\c018i.c
001a46 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\MCC18\src\traditional\startup\c018i.c
001a48 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
001a4a 0009 TBLRDPOSTINC tblrdpostinc C:\MCC18\src\traditional\startup\c018i.c
001a4c 0009 TBLRDPOSTINC tblrdpostinc C:\MCC18\src\traditional\startup\c018i.c
/* read the destination address directly into FSR0 */ C:\MCC18\src\traditional\startup\c018i.c
001a4e 0009 TBLRDPOSTINC tblrdpostinc C:\MCC18\src\traditional\startup\c018i.c
001a50 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\MCC18\src\traditional\startup\c018i.c
001a52 6ff0 MOVWF 0xf0,0x1 movwf curr_byte, 1 C:\MCC18\src\traditional\startup\c018i.c
001a54 0009 TBLRDPOSTINC tblrdpostinc C:\MCC18\src\traditional\startup\c018i.c
001a56 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\MCC18\src\traditional\startup\c018i.c
001a58 6ff1 MOVWF 0xf1,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
001a5a 0009 TBLRDPOSTINC tblrdpostinc C:\MCC18\src\traditional\startup\c018i.c
001a5c 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
001a5e cff6 MOVFF 0xff6,0xf4 data_ptr = TBLPTR; C:\MCC18\src\traditional\startup\c018i.c
001a60 f0f4
001a62 cff7 MOVFF 0xff7,0xf5
001a64 f0f5
001a66 cff8 MOVFF 0xff8,0xf6
001a68 f0f6
C:\MCC18\src\traditional\startup\c018i.c
/* now assign the source address to the table pointer */ C:\MCC18\src\traditional\startup\c018i.c
001a6a c0ed MOVFF 0xed,0xff6 TBLPTR = prom; C:\MCC18\src\traditional\startup\c018i.c
001a6c fff6
001a6e c0ee MOVFF 0xee,0xff7
001a70 fff7
001a72 c0ef MOVFF 0xef,0xff8
001a74 fff8
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -