📄 18f_ad.lst
字号:
000104 0100 MOVLB 0x0 movlb data_ptr C:\MCC18\src\traditional\startup\c018i.c
000106 0009 TBLRDPOSTINC tblrdpostinc C:\MCC18\src\traditional\startup\c018i.c
000108 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\MCC18\src\traditional\startup\c018i.c
00010a 6f73 MOVWF 0x73,0x1 movwf curr_entry, 1 C:\MCC18\src\traditional\startup\c018i.c
00010c 0009 TBLRDPOSTINC tblrdpostinc C:\MCC18\src\traditional\startup\c018i.c
00010e 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\MCC18\src\traditional\startup\c018i.c
000110 6f74 MOVWF 0x74,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
000112 e103 BNZ 0x11a bnz 3 C:\MCC18\src\traditional\startup\c018i.c
000114 6773 TSTFSZ 0x73,0x1 tstfsz curr_entry, 1 C:\MCC18\src\traditional\startup\c018i.c
000116 d001 BRA 0x11a bra 1 C:\MCC18\src\traditional\startup\c018i.c
_endasm C:\MCC18\src\traditional\startup\c018i.c
000118 d03d BRA 0x194 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
00011a 0009 TBLRDPOSTINC tblrdpostinc C:\MCC18\src\traditional\startup\c018i.c
00011c 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\MCC18\src\traditional\startup\c018i.c
00011e 6f6e MOVWF 0x6e,0x1 movwf prom, 1 C:\MCC18\src\traditional\startup\c018i.c
000120 0009 TBLRDPOSTINC tblrdpostinc C:\MCC18\src\traditional\startup\c018i.c
000122 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\MCC18\src\traditional\startup\c018i.c
000124 6f6f MOVWF 0x6f,0x1 movwf prom+1, 1 C:\MCC18\src\traditional\startup\c018i.c
000126 0009 TBLRDPOSTINC tblrdpostinc C:\MCC18\src\traditional\startup\c018i.c
000128 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\MCC18\src\traditional\startup\c018i.c
00012a 6f70 MOVWF 0x70,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
00012c 0009 TBLRDPOSTINC tblrdpostinc C:\MCC18\src\traditional\startup\c018i.c
/* read the destination address directly into FSR0 */ C:\MCC18\src\traditional\startup\c018i.c
00012e 0009 TBLRDPOSTINC tblrdpostinc C:\MCC18\src\traditional\startup\c018i.c
000130 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\MCC18\src\traditional\startup\c018i.c
000132 6ee9 MOVWF 0xe9,0x0 movwf FSR0L, 0 C:\MCC18\src\traditional\startup\c018i.c
000134 0009 TBLRDPOSTINC tblrdpostinc C:\MCC18\src\traditional\startup\c018i.c
000136 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\MCC18\src\traditional\startup\c018i.c
000138 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
00013a 0009 TBLRDPOSTINC tblrdpostinc C:\MCC18\src\traditional\startup\c018i.c
00013c 0009 TBLRDPOSTINC tblrdpostinc C:\MCC18\src\traditional\startup\c018i.c
/* read the destination address directly into FSR0 */ C:\MCC18\src\traditional\startup\c018i.c
00013e 0009 TBLRDPOSTINC tblrdpostinc C:\MCC18\src\traditional\startup\c018i.c
000140 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\MCC18\src\traditional\startup\c018i.c
000142 6f71 MOVWF 0x71,0x1 movwf curr_byte, 1 C:\MCC18\src\traditional\startup\c018i.c
000144 0009 TBLRDPOSTINC tblrdpostinc C:\MCC18\src\traditional\startup\c018i.c
000146 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\MCC18\src\traditional\startup\c018i.c
000148 6f72 MOVWF 0x72,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
00014a 0009 TBLRDPOSTINC tblrdpostinc C:\MCC18\src\traditional\startup\c018i.c
00014c 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
00014e cff6 MOVFF 0xff6,0x75 data_ptr = TBLPTR; C:\MCC18\src\traditional\startup\c018i.c
000150 f075
000152 cff7 MOVFF 0xff7,0x76
000154 f076
000156 cff8 MOVFF 0xff8,0x77
000158 f077
C:\MCC18\src\traditional\startup\c018i.c
/* now assign the source address to the table pointer */ C:\MCC18\src\traditional\startup\c018i.c
00015a c06e MOVFF 0x6e,0xff6 TBLPTR = prom; C:\MCC18\src\traditional\startup\c018i.c
00015c fff6
00015e c06f MOVFF 0x6f,0xff7
000160 fff7
000162 c070 MOVFF 0x70,0xff8
000164 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
000166 0100 MOVLB 0x0 movlb curr_byte C:\MCC18\src\traditional\startup\c018i.c
000168 5371 MOVF 0x71,0x1,0x1 movf curr_byte, 1, 1 C:\MCC18\src\traditional\startup\c018i.c
copy_loop: C:\MCC18\src\traditional\startup\c018i.c
00016a e102 BNZ 0x170 bnz 2 // copy_one_byte C:\MCC18\src\traditional\startup\c018i.c
00016c 5372 MOVF 0x72,0x1,0x1 movf curr_byte + 1, 1, 1 C:\MCC18\src\traditional\startup\c018i.c
00016e e007 BZ 0x17e bz 7 // done_copying C:\MCC18\src\traditional\startup\c018i.c
C:\MCC18\src\traditional\startup\c018i.c
copy_one_byte: C:\MCC18\src\traditional\startup\c018i.c
000170 0009 TBLRDPOSTINC tblrdpostinc C:\MCC18\src\traditional\startup\c018i.c
000172 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\MCC18\src\traditional\startup\c018i.c
000174 6eee MOVWF 0xee,0x0 movwf POSTINC0, 0 C:\MCC18\src\traditional\startup\c018i.c
C:\MCC18\src\traditional\startup\c018i.c
// decrement byte counter C:\MCC18\src\traditional\startup\c018i.c
000176 0771 DECF 0x71,0x1,0x1 decf curr_byte, 1, 1 C:\MCC18\src\traditional\startup\c018i.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -