📄 clock.lst
字号:
000e42 0e00 MOVLW 0x0
000e44 6ef7 MOVWF 0xf7,0x0
000e46 0e00 MOVLW 0x0
000e48 6ef8 MOVWF 0xf8,0x0
_asm C:\MCC18\src\traditional\startup\c018i.c
000e4a 0100 MOVLB 0x0 movlb data_ptr C:\MCC18\src\traditional\startup\c018i.c
000e4c 0009 TBLRDPOSTINC tblrdpostinc C:\MCC18\src\traditional\startup\c018i.c
000e4e 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\MCC18\src\traditional\startup\c018i.c
000e50 6fd2 MOVWF 0xd2,0x1 movwf curr_entry, 1 C:\MCC18\src\traditional\startup\c018i.c
000e52 0009 TBLRDPOSTINC tblrdpostinc C:\MCC18\src\traditional\startup\c018i.c
000e54 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\MCC18\src\traditional\startup\c018i.c
000e56 6fd3 MOVWF 0xd3,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
000e58 e103 BNZ 0xe60 bnz 3 C:\MCC18\src\traditional\startup\c018i.c
000e5a 67d2 TSTFSZ 0xd2,0x1 tstfsz curr_entry, 1 C:\MCC18\src\traditional\startup\c018i.c
000e5c d001 BRA 0xe60 bra 1 C:\MCC18\src\traditional\startup\c018i.c
_endasm C:\MCC18\src\traditional\startup\c018i.c
000e5e d03d BRA 0xeda 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
000e60 0009 TBLRDPOSTINC tblrdpostinc C:\MCC18\src\traditional\startup\c018i.c
000e62 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\MCC18\src\traditional\startup\c018i.c
000e64 6fcd MOVWF 0xcd,0x1 movwf prom, 1 C:\MCC18\src\traditional\startup\c018i.c
000e66 0009 TBLRDPOSTINC tblrdpostinc C:\MCC18\src\traditional\startup\c018i.c
000e68 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\MCC18\src\traditional\startup\c018i.c
000e6a 6fce MOVWF 0xce,0x1 movwf prom+1, 1 C:\MCC18\src\traditional\startup\c018i.c
000e6c 0009 TBLRDPOSTINC tblrdpostinc C:\MCC18\src\traditional\startup\c018i.c
000e6e 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\MCC18\src\traditional\startup\c018i.c
000e70 6fcf MOVWF 0xcf,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
000e72 0009 TBLRDPOSTINC tblrdpostinc C:\MCC18\src\traditional\startup\c018i.c
/* read the destination address directly into FSR0 */ C:\MCC18\src\traditional\startup\c018i.c
000e74 0009 TBLRDPOSTINC tblrdpostinc C:\MCC18\src\traditional\startup\c018i.c
000e76 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\MCC18\src\traditional\startup\c018i.c
000e78 6ee9 MOVWF 0xe9,0x0 movwf FSR0L, 0 C:\MCC18\src\traditional\startup\c018i.c
000e7a 0009 TBLRDPOSTINC tblrdpostinc C:\MCC18\src\traditional\startup\c018i.c
000e7c 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\MCC18\src\traditional\startup\c018i.c
000e7e 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
000e80 0009 TBLRDPOSTINC tblrdpostinc C:\MCC18\src\traditional\startup\c018i.c
000e82 0009 TBLRDPOSTINC tblrdpostinc C:\MCC18\src\traditional\startup\c018i.c
/* read the destination address directly into FSR0 */ C:\MCC18\src\traditional\startup\c018i.c
000e84 0009 TBLRDPOSTINC tblrdpostinc C:\MCC18\src\traditional\startup\c018i.c
000e86 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\MCC18\src\traditional\startup\c018i.c
000e88 6fd0 MOVWF 0xd0,0x1 movwf curr_byte, 1 C:\MCC18\src\traditional\startup\c018i.c
000e8a 0009 TBLRDPOSTINC tblrdpostinc C:\MCC18\src\traditional\startup\c018i.c
000e8c 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\MCC18\src\traditional\startup\c018i.c
000e8e 6fd1 MOVWF 0xd1,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
000e90 0009 TBLRDPOSTINC tblrdpostinc C:\MCC18\src\traditional\startup\c018i.c
000e92 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
000e94 cff6 MOVFF 0xff6,0xd4 data_ptr = TBLPTR; C:\MCC18\src\traditional\startup\c018i.c
000e96 f0d4
000e98 cff7 MOVFF 0xff7,0xd5
000e9a f0d5
000e9c cff8 MOVFF 0xff8,0xd6
000e9e f0d6
C:\MCC18\src\traditional\startup\c018i.c
/* now assign the source address to the table pointer */ C:\MCC18\src\traditional\startup\c018i.c
000ea0 c0cd MOVFF 0xcd,0xff6 TBLPTR = prom; C:\MCC18\src\traditional\startup\c018i.c
000ea2 fff6
000ea4 c0ce MOVFF 0xce,0xff7
000ea6 fff7
000ea8 c0cf MOVFF 0xcf,0xff8
000eaa 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
000eac 0100 MOVLB 0x0 movlb curr_byte C:\MCC18\src\traditional\startup\c018i.c
000eae 53d0 MOVF 0xd0,0x1,0x1 movf curr_byte, 1, 1 C:\MCC18\src\traditional\startup\c018i.c
copy_loop: C:\MCC18\src\traditional\startup\c018i.c
000eb0 e102 BNZ 0xeb6 bnz 2 // copy_one_byte C:\MCC18\src\traditional\startup\c018i.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -