📄 ncrt0.lst
字号:
* R8C/Tiny,M16C/60 SERIES ASSEMBLER * SOURCE LIST Mon Oct 08 12:05:38 2007 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 X .if _Firmware_space == 0
20 X .else
21 X .endif
22 .endif
23 ;---------------------------------------------------------------------
24 ; HEEP SIZE definition
25 ;---------------------------------------------------------------------
26 .if __HEAP__ == 1
27 00000000h HEAPSIZE .equ 0H
28 .else
29 X .if __HEAPSIZE__ == 0
30 X .else
31 X .endif
32 .endif
33
34 ;---------------------------------------------------------------------
35 ; STACK SIZE definition
36 ;---------------------------------------------------------------------
37 .if __USTACKSIZE__ == 0
38 X .if __R8C__ != 1
39 X .else
40 X .endif
41 .else
42 00000080h STACKSIZE .equ __USTACKSIZE__
43 .endif
44
45 ;---------------------------------------------------------------------
46 ; INTERRUPT STACK SIZE definition
47 ;---------------------------------------------------------------------
48 .if __ISTACKSIZE__ == 0
49 X .if __R8C__ != 1
50 X .else
51 X .endif
52 .else
53 00000080h ISTACKSIZE .equ __ISTACKSIZE__
54 .endif
55
56 ;---------------------------------------------------------------------
57 ; INTERRUPT VECTOR ADDRESS definition
58 ;---------------------------------------------------------------------
59 .if __R8C__ != 1
60 X .if _KD_ == 1
61 X .else
62 X .endif // _KD_
* R8C/Tiny,M16C/60 SERIES ASSEMBLER * SOURCE LIST Mon Oct 08 12:05:38 2007 PAGE 002
SEQ. LOC. OBJ. 0XMSDA ....*....SOURCE STATEMENT....7....*....8....*....9....*....0....*....1....*....2....*....3....*....4....*....5....*....6....*....7....*....8....*....9....*....0
63 .else
64 0000FEDCh VECTOR_ADR .equ 0fedch
65 .endif
66
67 ;---------------------------------------------------------------------
68 ; Section allocation
69 ;---------------------------------------------------------------------
70 .list OFF
71 .list ON
72
73 ;---------------------------------------------------------------------
74 ; SBDATA area definition
75 ;---------------------------------------------------------------------
76 .glb __SB__
77 00000400h __SB__ .equ data_SE_top
78
79 ;====================================================================
80 ; Initialize Macro declaration
81 ;---------------------------------------------------------------------
82 D N_BZERO .macro TOP_ ,SECT_
83 D mov.b #00H, R0L
84 D mov.w #(TOP_ & 0FFFFH), A1
85 D mov.w #sizeof SECT_ , R3
86 D sstr.b
87 .endm
88
89 D N_BCOPY .macro FROM_,TO_,SECT_
90 D mov.w #(FROM_ & 0FFFFH),A0
91 D mov.b #(FROM_ >>16),R1H
92 D mov.w #TO_ ,A1
93 D mov.w #sizeof SECT_ , R3
94 D smovf.b
95 .endm
96
97 D BZERO .macro TOP_,SECT_
98 D push.w #sizeof SECT_ >> 16
99 D push.w #sizeof SECT_ & 0ffffh
100 D pusha TOP_ >>16
101 D pusha TOP_ & 0ffffh
102 D .stk 8
103 D .glb _bzero
104 D .call _bzero,G
105 D jsr.a _bzero
106 .endm
107
108 D BCOPY .macro FROM_ ,TO_ ,SECT_
109 D push.w #sizeof SECT_ >> 16
110 D push.w #sizeof SECT_ & 0ffffh
111 D pusha TO_ >>16
112 D pusha TO_ & 0ffffh
113 D pusha FROM_ >>16
114 D pusha FROM_ & 0ffffh
115 D .stk 12
116 D .glb _bcopy
117 D .call _bcopy,G
118 D jsr.a _bcopy
119 .endm
120
121 .if __R8C__ != 1
122 X .if __HEAP__ != 1
123 X .endif
124 X .if __STANDARD_IO__ == 1
* R8C/Tiny,M16C/60 SERIES ASSEMBLER * SOURCE LIST Mon Oct 08 12:05:38 2007 PAGE 003
SEQ. LOC. OBJ. 0XMSDA ....*....SOURCE STATEMENT....7....*....8....*....9....*....0....*....1....*....2....*....3....*....4....*....5....*....6....*....7....*....8....*....9....*....0
125 X .endif
126 .else ; __R8C__
127
128 ;---------------------------------------------------------------------
129 ; for R8C/Tiny
130 ;---------------------------------------------------------------------
131
132 ;====================================================================
133 ; Interrupt section start
134 ;---------------------------------------------------------------------
135 .insf start,S,0
136 .glb start
137 .section interrupt
138 00000 start:
139 ;---------------------------------------------------------------------
140 ; after reset,this program will start
141 ;---------------------------------------------------------------------
142 00000 EB400000r ldc #istack_top, isp ;set istack pointer
143 00004 C7020A00 S mov.b #02h,0ah
144 00008 B70400 Z mov.b #00h,04h ;set processer mode
145 0000B B70A00 Z mov.b #00h,0ah
146 0000E EB308000 ldc #0080h, flg
147 00012 EB500000r ldc #stack_top, sp ;set stack pointer
148 00016 EB600004 ldc #data_SE_top, sb ;set sb register
149 0001A EB200000 ldintb #VECTOR_ADR
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -