?? ncrt0.lst
字號:
* R8C/Tiny,M16C/60 SERIES ASSEMBLER * SOURCE LIST Wed Aug 23 09:18:16 2006 PAGE 001
SEQ. LOC. OBJ. 0XMSDA ....*....SOURCE STATEMENT....7....*....8....*....9....*....0....*....1....*....2....*....3....*....4....*....5....*....6....*....7....*....8....*....9....*....0
1 ;*************************************************************************** ;
2 ; C COMPILER for R8C/Tiny, M16C/60,30,20,10
3 ; Copyright(C) 1999(2000-2004). Renesas Technology Corp.
4 ; and Renesas Solutions Corp., All rights reserved.
5 ;
6 ;
7 ; ncrt0.a30 : NC30 startup program
8 ;
9 ; This program is applicable when using the basic I/O library
10 ;
11 ; $Date: 2005/11/08 11:25:56 $
12 ; $Revision: 1.35 $
13 ;***************************************************************************
14
15 ;--------------------------------------------------------------------
16 ; set size of monitor area for FoUSB
17 ;--------------------------------------------------------------------
18 .if _KD_
19 .if _Firmware_space == 0
20 00000600h FoUSB_MON .equ 600H ; for default
21 .else
22 .endif
23 .endif
24 ;---------------------------------------------------------------------
25 ; HEEP SIZE definition
26 ;---------------------------------------------------------------------
27 .if __HEAP__ == 1
28 00000000h HEAPSIZE .equ 0H
29 .else
30 X .if __HEAPSIZE__ == 0
31 X .else
32 X .endif
33 .endif
34
35 ;---------------------------------------------------------------------
36 ; STACK SIZE definition
37 ;---------------------------------------------------------------------
38 .if __USTACKSIZE__ == 0
39 .if __R8C__ != 1
40 00000300h STACKSIZE .equ 300h
41 .else
42 .endif
43 .else
44 .endif
45
46 ;---------------------------------------------------------------------
47 ; INTERRUPT STACK SIZE definition
48 ;---------------------------------------------------------------------
49 .if __ISTACKSIZE__ == 0
50 .if __R8C__ != 1
51 00000300h ISTACKSIZE .equ 300h
52 .else
53 .endif
54 .else
55 .endif
56
57 ;---------------------------------------------------------------------
58 ; INTERRUPT VECTOR ADDRESS definition
59 ;---------------------------------------------------------------------
60 .if __R8C__ != 1
61 .if _KD_ == 1
62 ; for FoUSB's monitor area
* R8C/Tiny,M16C/60 SERIES ASSEMBLER * SOURCE LIST Wed Aug 23 09:18:16 2006 PAGE 002
SEQ. LOC. OBJ. 0XMSDA ....*....SOURCE STATEMENT....7....*....8....*....9....*....0....*....1....*....2....*....3....*....4....*....5....*....6....*....7....*....8....*....9....*....0
63 ; 64 is variable vector's number
64 ; 4 is each vector's size
65 000FF800h VECTOR_ADR .equ 0ff900h - (64*4)
66 000FFE00h SVECTOR_ADR .equ 0ffe00h
67 .else
68 .endif // _KD_
69 .else
70 .endif
71
72 ;---------------------------------------------------------------------
73 ; Section allocation
74 ;---------------------------------------------------------------------
75 .list OFF
76 .list ON
77
78 ;---------------------------------------------------------------------
79 ; SBDATA area definition
80 ;---------------------------------------------------------------------
81 .glb __SB__
82 00000400h __SB__ .equ data_SE_top
83
84 ;====================================================================
85 ; Initialize Macro declaration
86 ;---------------------------------------------------------------------
87 D N_BZERO .macro TOP_ ,SECT_
88 D mov.b #00H, R0L
89 D mov.w #(TOP_ & 0FFFFH), A1
90 D mov.w #sizeof SECT_ , R3
91 D sstr.b
92 .endm
93
94 D N_BCOPY .macro FROM_,TO_,SECT_
95 D mov.w #(FROM_ & 0FFFFH),A0
96 D mov.b #(FROM_ >>16),R1H
97 D mov.w #TO_ ,A1
98 D mov.w #sizeof SECT_ , R3
99 D smovf.b
100 .endm
101
102 D BZERO .macro TOP_,SECT_
103 D push.w #sizeof SECT_ >> 16
104 D push.w #sizeof SECT_ & 0ffffh
105 D pusha TOP_ >>16
106 D pusha TOP_ & 0ffffh
107 D .stk 8
108 D .glb _bzero
109 D .call _bzero,G
110 D jsr.a _bzero
111 .endm
112
113 D BCOPY .macro FROM_ ,TO_ ,SECT_
114 D push.w #sizeof SECT_ >> 16
115 D push.w #sizeof SECT_ & 0ffffh
116 D pusha TO_ >>16
117 D pusha TO_ & 0ffffh
118 D pusha FROM_ >>16
119 D pusha FROM_ & 0ffffh
120 D .stk 12
121 D .glb _bcopy
122 D .call _bcopy,G
123 D jsr.a _bcopy
124 .endm
* R8C/Tiny,M16C/60 SERIES ASSEMBLER * SOURCE LIST Wed Aug 23 09:18:16 2006 PAGE 003
SEQ. LOC. OBJ. 0XMSDA ....*....SOURCE STATEMENT....7....*....8....*....9....*....0....*....1....*....2....*....3....*....4....*....5....*....6....*....7....*....8....*....9....*....0
125
126 .if __R8C__ != 1
127 ;
128 ; for M16C/60,30,20,10 series
129 ;
130 ; .glb __BankSelect
131 ;__BankSelect .equ 0BH
132
133 ;---------------------------------------------------------------
134 ; special page definition
135 ;---------------------------------------------------------------
136 ; macro define for special page
137 ;
138 ;Format:
139 ; SPECIAL number
140 ;
141
142 D SPECIAL .macro NUM
143 D .org 0FFFFEH-(NUM*2)
144 D .glb __SPECIAL_@NUM
145 D .word __SPECIAL_@NUM & 0FFFFH
146 .endm
147 ;====================================================================
148 ; Interrupt section start
149 ;---------------------------------------------------------------------
150 .insf start,S,0
151 .glb start
152 .section interrupt
153 00000 start:
154 ;---------------------------------------------------------------------
155 ; after reset,this program will start
156 ;---------------------------------------------------------------------
157 00000 EB400000r ldc #istack_top, isp ;set istack pointer
158 00004 C7020A00 S mov.b #02h,0ah
159 00008 B70400 Z mov.b #00h,04h ;set processer mode
160 0000B B70A00 Z mov.b #00h,0ah
161 0000E EB308000 ldc #0080h, flg
162 00012 EB500000r ldc #stack_top, sp ;set stack pointer
163 00016 EB600004 ldc #data_SE_top, sb ;set sb register
164 0001A EB200F00 ldintb #VECTOR_ADR
EB1000F8
165
166 ;====================================================================
167 ; NEAR area initialize.
168 ;--------------------------------------------------------------------
169 ; bss zero clear
170 ;--------------------------------------------------------------------
171 N_BZERO bss_SE_top,bss_SE
172 00022 B4 M Z mov.b #00H, R0L
173 00023 AA0000r M S mov.w #(bss_SE_top & 0FFFFH), A1
174 00026 75C30000r M mov.w #sizeof bss_SE , R3
175 0002A 7CEA M sstr.b
176 M .endm
177 N_BZERO bss_SO_top,bss_SO
178 0002C B4 M Z mov.b #00H, R0L
179 0002D AA0000r M S mov.w #(bss_SO_top & 0FFFFH), A1
180 00030 75C30000r M mov.w #sizeof bss_SO , R3
181 00034 7CEA M sstr.b
182 M .endm
183 N_BZERO bss_NE_top,bss_NE
184 00036 B4 M Z mov.b #00H, R0L
185 00037 AA0000r M S mov.w #(bss_NE_top & 0FFFFH), A1
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -