📄 ncrt0.lst
字号:
* M16C FAMILY ASSEMBLER * SOURCE LIST Thu Feb 28 15:49:03 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 in Microprocessor mode. This program is
7 ; applicable when using the basic I/O library.
8 ;
9 ; Revised: 2-28-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 000FFD00h VECTOR_ADR .equ 0ffd00h
36
37 ;---------------------------------------------------------------
38 ; special page definition
39 ;---------------------------------------------------------------
40 ; macro define for special page
41 ;
42 ;Format:
43 ; SPECIAL number
44 ;
45
46 D SPECIAL .macro NUM
47 D .org 0FFFFEH-(NUM*2)
48 D .glb __SPECIAL_@NUM
49 D .word __SPECIAL_@NUM & 0FFFFH
50 .endm
51 ;---------------------------------------------------------------------
52 ; Section allocation
53 ;---------------------------------------------------------------------
54 .list OFF
55 .list ON
56
57 ;---------------------------------------------------------------------
58 ; SBDATA area definition
59 ;---------------------------------------------------------------------
60 .glb __SB__
61 00000400h __SB__ .equ data_SE_top
62
* M16C FAMILY ASSEMBLER * SOURCE LIST Thu Feb 28 15:49:03 2002 PAGE 002
SEQ. LOC. OBJ. 0XMSDA ....*....SOURCE STATEMENT....7....*....8....*....9....*....0....*....1....*....2....*....3....*....4
63 ;====================================================================
64 ; Initialize Macro declaration
65 ;---------------------------------------------------------------------
66 D N_BZERO .macro TOP_ ,SECT_
67 D mov.b #00H, R0L
68 D mov.w #(TOP_ & 0FFFFH), A1
69 D mov.w #sizeof SECT_ , R3
70 D sstr.b
71 .endm
72
73 D N_BCOPY .macro FROM_,TO_,SECT_
74 D mov.w #(FROM_ & 0FFFFH),A0
75 D mov.b #(FROM_ >>16),R1H
76 D mov.w #TO_ ,A1
77 D mov.w #sizeof SECT_ , R3
78 D smovf.b
79 .endm
80
81 D BZERO .macro TOP_,SECT_
82 D push.w #sizeof SECT_ >> 16
83 D push.w #sizeof SECT_ & 0ffffh
84 D pusha TOP_ >>16
85 D pusha TOP_ & 0ffffh
86 D .stk 8
87 D .glb _bzero
88 D .call _bzero,G
89 D jsr.a _bzero
90 .endm
91
92 D BCOPY .macro FROM_ ,TO_ ,SECT_
93 D push.w #sizeof SECT_ >> 16
94 D push.w #sizeof SECT_ & 0ffffh
95 D pusha TO_ >>16
96 D pusha TO_ & 0ffffh
97 D pusha FROM_ >>16
98 D pusha FROM_ & 0ffffh
99 D .stk 12
100 D .glb _bcopy
101 D .call _bcopy,G
102 D jsr.a _bcopy
103 .endm
104
105 ;====================================================================
106 ; Interrupt section start
107 ;---------------------------------------------------------------------
108 .insf start,S,0
109 .glb start
110 .section interrupt
111 00000 start:
112 ;---------------------------------------------------------------------
113 ; after reset,this program will start
114 ;---------------------------------------------------------------------
115 00000 C7020A00 S mov.b #02h,0ah ; disable register protect
116 00004 C7070400 S mov.b #07h,04h ;set processer mode pm1 (uP mode)
117 00008 B70500 Z mov.b #00h,05h ;set pm2
118 0000B B70A00 Z mov.b #00h,0ah ; enable register protect
119 0000E C7010800 S mov.b #01h,08h ; enable CS0 with wait state
120 00012 C7011B00 S mov.b #01h,1bh ; cs0 -> 2 wait states
121
122 00016 EB308000 ldc #0080h, flg
123 0001A EB400000r ldc #istack_top, isp ;set istack pointer
124 0001E EB500000r ldc #stack_top, sp ;set stack pointer
* M16C FAMILY ASSEMBLER * SOURCE LIST Thu Feb 28 15:49:03 2002 PAGE 003
SEQ. LOC. OBJ. 0XMSDA ....*....SOURCE STATEMENT....7....*....8....*....9....*....0....*....1....*....2....*....3....*....4
125 ; ldc #stack_top, fb
126 00022 EB600004 ldc #data_SE_top, sb ;set sb register
127 00026 EB200F00 ldintb #VECTOR_ADR ;load start addr of interrupt vector table
EB1000FD
128
129 ;====================================================================
130 ; NEAR area initialize.
131 ;--------------------------------------------------------------------
132 ; bss zero clear
133 ;--------------------------------------------------------------------
134 N_BZERO bss_SE_top,bss_SE
135 0002E B4 M Z mov.b #00H, R0L
136 0002F AA0000r M S mov.w #(bss_SE_top & 0FFFFH), A1
137 00032 75C30000r M mov.w #sizeof bss_SE , R3
138 00036 7CEA M sstr.b
139 M .endm
140 N_BZERO bss_SO_top,bss_SO
141 00038 B4 M Z mov.b #00H, R0L
142 00039 AA0000r M S mov.w #(bss_SO_top & 0FFFFH), A1
143 0003C 75C30000r M mov.w #sizeof bss_SO , R3
144 00040 7CEA M sstr.b
145 M .endm
146 N_BZERO bss_NE_top,bss_NE
147 00042 B4 M Z mov.b #00H, R0L
148 00043 AA0000r M S mov.w #(bss_NE_top & 0FFFFH), A1
149 00046 75C30000r M mov.w #sizeof bss_NE , R3
150 0004A 7CEA M sstr.b
151 M .endm
152 N_BZERO bss_NO_top,bss_NO
153 0004C B4 M Z mov.b #00H, R0L
154 0004D AA0000r M S mov.w #(bss_NO_top & 0FFFFH), A1
155 00050 75C30000r M mov.w #sizeof bss_NO , R3
156 00054 7CEA M sstr.b
157 M .endm
158
159 ;---------------------------------------------------------------------
160 ; initialize data section
161 ;---------------------------------------------------------------------
162 N_BCOPY data_SEI_top,data_SE_top,data_SE
163 00056 A20000r M S mov.w #(data_SEI_top & 0FFFFH),A0
164 00059 74C300r M mov.b #(data_SEI_top >>16),R1H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -