📄 lcdcontrol.lst
字号:
*/ 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
0015e8 0e2a MOVLW 0x2a TBLPTR = (short long)&_cinit; C:\mcc18\src\traditional\startup\c018i.c
0015ea 6ef6 MOVWF 0xf6,0x0
0015ec 0e00 MOVLW 0x0
0015ee 6ef7 MOVWF 0xf7,0x0
0015f0 0e00 MOVLW 0x0
0015f2 6ef8 MOVWF 0xf8,0x0
_asm C:\mcc18\src\traditional\startup\c018i.c
0015f4 0105 MOVLB 0x5 movlb data_ptr C:\mcc18\src\traditional\startup\c018i.c
0015f6 0009 TBLRDPOSTINC tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
0015f8 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\mcc18\src\traditional\startup\c018i.c
0015fa 6fe9 MOVWF 0xe9,0x1 movwf curr_entry, 1 C:\mcc18\src\traditional\startup\c018i.c
0015fc 0009 TBLRDPOSTINC tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
0015fe 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\mcc18\src\traditional\startup\c018i.c
001600 6fea MOVWF 0xea,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
001602 e103 BNZ 0x160a bnz 3 C:\mcc18\src\traditional\startup\c018i.c
001604 67e9 TSTFSZ 0xe9,0x1 tstfsz curr_entry, 1 C:\mcc18\src\traditional\startup\c018i.c
001606 d001 BRA 0x160a bra 1 C:\mcc18\src\traditional\startup\c018i.c
_endasm C:\mcc18\src\traditional\startup\c018i.c
001608 d03d BRA 0x1684 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
00160a 0009 TBLRDPOSTINC tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
00160c 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\mcc18\src\traditional\startup\c018i.c
00160e 6fe4 MOVWF 0xe4,0x1 movwf prom, 1 C:\mcc18\src\traditional\startup\c018i.c
001610 0009 TBLRDPOSTINC tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
001612 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\mcc18\src\traditional\startup\c018i.c
001614 6fe5 MOVWF 0xe5,0x1 movwf prom+1, 1 C:\mcc18\src\traditional\startup\c018i.c
001616 0009 TBLRDPOSTINC tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
001618 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\mcc18\src\traditional\startup\c018i.c
00161a 6fe6 MOVWF 0xe6,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
00161c 0009 TBLRDPOSTINC tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
/* read the destination address directly into FSR0 */ C:\mcc18\src\traditional\startup\c018i.c
00161e 0009 TBLRDPOSTINC tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
001620 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\mcc18\src\traditional\startup\c018i.c
001622 6ee9 MOVWF 0xe9,0x0 movwf FSR0L, 0 C:\mcc18\src\traditional\startup\c018i.c
001624 0009 TBLRDPOSTINC tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
001626 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\mcc18\src\traditional\startup\c018i.c
001628 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
00162a 0009 TBLRDPOSTINC tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
00162c 0009 TBLRDPOSTINC tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
/* read the destination address directly into FSR0 */ C:\mcc18\src\traditional\startup\c018i.c
00162e 0009 TBLRDPOSTINC tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
001630 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\mcc18\src\traditional\startup\c018i.c
001632 6fe7 MOVWF 0xe7,0x1 movwf curr_byte, 1 C:\mcc18\src\traditional\startup\c018i.c
001634 0009 TBLRDPOSTINC tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
001636 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\mcc18\src\traditional\startup\c018i.c
001638 6fe8 MOVWF 0xe8,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
00163a 0009 TBLRDPOSTINC tblrdpostinc C:\mcc18\src\traditional\startup\c018i.c
00163c 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
00163e cff6 MOVFF 0xff6,0x5eb data_ptr = TBLPTR; C:\mcc18\src\traditional\startup\c018i.c
001640 f5eb
001642 cff7 MOVFF 0xff7,0x5ec
001644 f5ec
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -