📄 ncrt0.lst
字号:
* M16C FAMILY ASSEMBLER * SOURCE LIST Mon Apr 11 22:09:03 2005 PAGE 001
SEQ. LOC. OBJ. 0XMSDA ....*....SOURCE STATEMENT....7....*....8....*....9....*....0....*....1....*....2....*....3....*....4
1 ;*************************************************************************** ;
2 ; C COMPILER for M16C/60,20
3 ; Copyright 2001 MITSUBISHI ELECTRIC CORPORATION
4 ; AND MITSUBISHI ELECTRIC SEMICONDUCTOR APPLICATION ENGINEERING CORPORATION
5 ; All Rights Reserved.
6 ;
7 ; ncrt0.a30 : NC30 startup program
8 ;
9 ; This program is applicable when using the basic I/O library
10 ;
11 ; $Id: ncrt0.a30,v 1.14 2001/11/12 04:06:53 muranaka Exp $
12 ;
13 ; Updated by Paul Wright 23 Apr 2002 for use with Monitor V2 and KD30
14 ;
15 ;***************************************************************************
16
17 ; .glb __BankSelect
18 ;__BankSelect .equ 0BH
19 ;---------------------------------------------------------------------
20 ; HEEP SIZE definition
21 ;---------------------------------------------------------------------
22 00000300h HEAPSIZE .equ 300h ;定义堆的大小
23
24 ;---------------------------------------------------------------------
25 ; STACK SIZE definition
26 ;---------------------------------------------------------------------
27 00000300h STACKSIZE .equ 300h ;定义用户堆栈的大小
28
29 ;---------------------------------------------------------------------
30 ; INTERRUPT STACK SIZE definition
31 ;---------------------------------------------------------------------
32 00000300h ISTACKSIZE .equ 300h ;定义中断堆栈的大小
33
34 ;---------------------------------------------------------------------
35 ; INTERRUPT VECTOR ADDRESS definition
36 ;---------------------------------------------------------------------
37 ;VECTOR_ADR .equ 0ffd00h
38 000FFE00h VECTOR_ADR .equ 0FFE00h ;可变中断矢量表的起始地址
39
40 ;---------------------------------------------------------------
41 ; special page definition
42 ;---------------------------------------------------------------
43 ; macro define for special page
44 ;
45 ;Format:
46 ; SPECIAL number
47 ;
48
49 D SPECIAL .macro NUM
50 D .org 0FFFFEH-(NUM*2)
51 D .glb __SPECIAL_@NUM
52 D .word __SPECIAL_@NUM & 0FFFFH
53 .endm
54 ;---------------------------------------------------------------------
55 ; Section allocation
56 ;---------------------------------------------------------------------
57 .list OFF
58 .list ON
59
60 ;---------------------------------------------------------------------
61 ; SBDATA area definition
62 ;---------------------------------------------------------------------
* M16C FAMILY ASSEMBLER * SOURCE LIST Mon Apr 11 22:09:03 2005 PAGE 002
SEQ. LOC. OBJ. 0XMSDA ....*....SOURCE STATEMENT....7....*....8....*....9....*....0....*....1....*....2....*....3....*....4
63 .glb __SB__
64 00000400h __SB__ .equ data_SE_top
65
66 ;====================================================================
67 ; Initialize Macro declaration
68 ;---------------------------------------------------------------------
69 D N_BZERO .macro TOP_ ,SECT_
70 D mov.b #00H, R0L
71 D mov.w #(TOP_ & 0FFFFH), A1
72 D mov.w #sizeof SECT_ , R3
73 D sstr.b
74 .endm
75
76 D N_BCOPY .macro FROM_,TO_,SECT_
77 D mov.w #(FROM_ & 0FFFFH),A0
78 D mov.b #(FROM_ >>16),R1H
79 D mov.w #TO_ ,A1
80 D mov.w #sizeof SECT_ , R3
81 D smovf.b
82 .endm
83
84 D BZERO .macro TOP_,SECT_
85 D push.w #sizeof SECT_ >> 16
86 D push.w #sizeof SECT_ & 0ffffh
87 D pusha TOP_ >>16
88 D pusha TOP_ & 0ffffh
89 D .stk 8
90 D .glb _bzero
91 D .call _bzero,G
92 D jsr.a _bzero
93 .endm
94
95
96 D BCOPY .macro FROM_ ,TO_ ,SECT_
97 D push.w #sizeof SECT_ >> 16
98 D push.w #sizeof SECT_ & 0ffffh
99 D pusha TO_ >>16
100 D pusha TO_ & 0ffffh
101 D pusha FROM_ >>16
102 D pusha FROM_ & 0ffffh
103 D .stk 12
104 D .glb _bcopy
105 D .call _bcopy,G
106 D jsr.a _bcopy
107 .endm
108
109 ;====================================================================
110 ; Interrupt section start
111 ;---------------------------------------------------------------------
112 .insf start,S,0
113 .glb start
114 .section interrupt
115 00000 start:
116 ;---------------------------------------------------------------------
117 ; after reset,this program will start
118 ;---------------------------------------------------------------------
119 00000 EB400000r ldc #istack_top, isp ;set istack pointer
120 00004 C7030A00 S mov.b #03h,0ah ;enable PRC1 and PRC0 bits
121 ; bset 1,0ah
122 00008 C7C00400 S mov.b #0c0h,04h ;set processor mode
123 0000C B70500 Z mov.b #00h,05h
124 ; bclr 1,0ah
* M16C FAMILY ASSEMBLER * SOURCE LIST Mon Apr 11 22:09:03 2005 PAGE 003
SEQ. LOC. OBJ. 0XMSDA ....*....SOURCE STATEMENT....7....*....8....*....9....*....0....*....1....*....2....*....3....*....4
125 0000F C7480600 S mov.b #48h,06h ;set to no division mode on main clock
126 00013 C7200700 S mov.b #20h,07h
127 00017 B70A00 Z mov.b #00h,0ah ;disable PRC1 and PRC0 bits
128
129 0001A EB308000 ldc #0080h, flg
130 0001E EB500000r ldc #stack_top, sp ;set stack pointer
131 00022 EB600004 ldc #data_SE_top, sb ;set sb register
132 00026 EB65 fclr I
133 00028 EB200F00 ldintb #VECTOR_ADR
EB1000FE
134 00030 EB64 fset I
135
136 ;====================================================================
137 ; NEAR area initialize.
138 ;--------------------------------------------------------------------
139 ; bss zero clear
140 ;--------------------------------------------------------------------
141 N_BZERO bss_SE_top,bss_SE
142 00032 B4 M Z mov.b #00H, R0L
143 00033 AA0000r M S mov.w #(bss_SE_top & 0FFFFH), A1
144 00036 75C30000r M mov.w #sizeof bss_SE , R3
145 0003A 7CEA M sstr.b
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -