📄 ncrt0.lst
字号:
* M16C FAMILY ASSEMBLER * SOURCE LIST Thu Feb 28 14:06:56 2002 PAGE 001
SEQ. LOC. OBJ. 0XMSDA ....*....SOURCE STATEMENT....7....*....8....*....9....*....0....*....1....*....2....*....3....*....4
1 ;*************************************************************************** ;
2 ;
3 ; ncrt0.a30 C COMPILER for M16C/60
4 ;
5 ; NC30 startup program customized for the M30245
6 ; microcontroller. This program is applicable when
7 ; using the basic I/O library.
8 ;
9 ; Revised: 2-27-2002
10 ;
11 ; Copyright 2002 MITSUBISHI ELECTRIC & ELECTRONICS USA, INC.
12 ; All Rights Reserved.
13 ;
14 ;***************************************************************************
15
16 ;---------------------------------------------------------------------
17 ; HEEP SIZE definition
18 ; (set to 0 if not using memory management functions(calloc,malloc))
19 ;---------------------------------------------------------------------
20 00000300h HEAPSIZE .equ 300h
21
22 ;---------------------------------------------------------------------
23 ; STACK SIZE definition
24 ;---------------------------------------------------------------------
25 00000300h STACKSIZE .equ 300h
26
27 ;---------------------------------------------------------------------
28 ; INTERRUPT STACK SIZE definition
29 ;---------------------------------------------------------------------
30 00000300h ISTACKSIZE .equ 300h
31
32 ;---------------------------------------------------------------------
33 ; INTERRUPT VECTOR ADDRESS definition
34 ;---------------------------------------------------------------------
35 ;VECTOR_ADR .equ 0ffd00h
36 000FE000h VECTOR_ADR .equ 0fe000h ; use with KD30
37
38 ;---------------------------------------------------------------
39 ; special page definition
40 ;---------------------------------------------------------------
41 ; macro define for special page
42 ;
43 ;Format:
44 ; SPECIAL number
45 ;
46
47 D SPECIAL .macro NUM
48 D .org 0FFFFEH-(NUM*2)
49 D .glb __SPECIAL_@NUM
50 D .word __SPECIAL_@NUM & 0FFFFH
51 .endm
52 ;---------------------------------------------------------------------
53 ; Section allocation
54 ;---------------------------------------------------------------------
55 .list OFF
56 .list ON
57
58 ;---------------------------------------------------------------------
59 ; SBDATA area definition
60 ;---------------------------------------------------------------------
61 .glb __SB__
62 00000400h __SB__ .equ data_SE_top
* M16C FAMILY ASSEMBLER * SOURCE LIST Thu Feb 28 14:06:56 2002 PAGE 002
SEQ. LOC. OBJ. 0XMSDA ....*....SOURCE STATEMENT....7....*....8....*....9....*....0....*....1....*....2....*....3....*....4
63
64 ;====================================================================
65 ; Initialize Macro declaration
66 ;---------------------------------------------------------------------
67 D N_BZERO .macro TOP_ ,SECT_
68 D mov.b #00H, R0L
69 D mov.w #(TOP_ & 0FFFFH), A1
70 D mov.w #sizeof SECT_ , R3
71 D sstr.b
72 .endm
73
74 D N_BCOPY .macro FROM_,TO_,SECT_
75 D mov.w #(FROM_ & 0FFFFH),A0
76 D mov.b #(FROM_ >>16),R1H
77 D mov.w #TO_ ,A1
78 D mov.w #sizeof SECT_ , R3
79 D smovf.b
80 .endm
81
82 D BZERO .macro TOP_,SECT_
83 D push.w #sizeof SECT_ >> 16
84 D push.w #sizeof SECT_ & 0ffffh
85 D pusha TOP_ >>16
86 D pusha TOP_ & 0ffffh
87 D .stk 8
88 D .glb _bzero
89 D .call _bzero,G
90 D jsr.a _bzero
91 .endm
92
93 D BCOPY .macro FROM_ ,TO_ ,SECT_
94 D push.w #sizeof SECT_ >> 16
95 D push.w #sizeof SECT_ & 0ffffh
96 D pusha TO_ >>16
97 D pusha TO_ & 0ffffh
98 D pusha FROM_ >>16
99 D pusha FROM_ & 0ffffh
100 D .stk 12
101 D .glb _bcopy
102 D .call _bcopy,G
103 D jsr.a _bcopy
104 .endm
105
106 ;====================================================================
107 ; Interrupt section start
108 ;---------------------------------------------------------------------
109 .insf start,S,0
110 .glb start
111 .section interrupt
112 00000 start:
113 ;---------------------------------------------------------------------
114 ; after reset,this program will start
115 ;---------------------------------------------------------------------
116 00000 C7020A00 S mov.b #02h,0ah ;disable register protect
117 00004 B70400 Z mov.b #00h,04h ;set processor mode
118 00007 B70A00 Z mov.b #00h,0ah ;enable register protect
119
120 0000A EB308000 ldc #0080h, flg
121 0000E EB400000r ldc #istack_top, isp ;set istack pointer
122 00012 EB500000r ldc #stack_top, sp ;set stack pointer
123 ; ldc #stack_top, fb
124 00016 EB600004 ldc #data_SE_top, sb ;set sb register
* M16C FAMILY ASSEMBLER * SOURCE LIST Thu Feb 28 14:06:56 2002 PAGE 003
SEQ. LOC. OBJ. 0XMSDA ....*....SOURCE STATEMENT....7....*....8....*....9....*....0....*....1....*....2....*....3....*....4
125 0001A EB200F00 ldintb #VECTOR_ADR ;load start addr of interrupt vector table
EB1000E0
126
127 ;====================================================================
128 ; NEAR area initialize.
129 ;--------------------------------------------------------------------
130 ; bss zero clear
131 ;--------------------------------------------------------------------
132 N_BZERO bss_SE_top,bss_SE
133 00022 B4 M Z mov.b #00H, R0L
134 00023 AA0000r M S mov.w #(bss_SE_top & 0FFFFH), A1
135 00026 75C30000r M mov.w #sizeof bss_SE , R3
136 0002A 7CEA M sstr.b
137 M .endm
138 N_BZERO bss_SO_top,bss_SO
139 0002C B4 M Z mov.b #00H, R0L
140 0002D AA0000r M S mov.w #(bss_SO_top & 0FFFFH), A1
141 00030 75C30000r M mov.w #sizeof bss_SO , R3
142 00034 7CEA M sstr.b
143 M .endm
144 N_BZERO bss_NE_top,bss_NE
145 00036 B4 M Z mov.b #00H, R0L
146 00037 AA0000r M S mov.w #(bss_NE_top & 0FFFFH), A1
147 0003A 75C30000r M mov.w #sizeof bss_NE , R3
148 0003E 7CEA M sstr.b
149 M .endm
150 N_BZERO bss_NO_top,bss_NO
151 00040 B4 M Z mov.b #00H, R0L
152 00041 AA0000r M S mov.w #(bss_NO_top & 0FFFFH), A1
153 00044 75C30000r M mov.w #sizeof bss_NO , R3
154 00048 7CEA M sstr.b
155 M .endm
156
157 ;---------------------------------------------------------------------
158 ; initialize data section
159 ;---------------------------------------------------------------------
160 N_BCOPY data_SEI_top,data_SE_top,data_SE
161 0004A A20000r M S mov.w #(data_SEI_top & 0FFFFH),A0
162 0004D 74C300r M mov.b #(data_SEI_top >>16),R1H
163 00050 AA0004 M S mov.w #data_SE_top ,A1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -