📄 ad10.lst
字号:
* M16C FAMILY ASSEMBLER * SOURCE LIST Sat Apr 09 03:13:07 2005 PAGE 001
SEQ. LOC. OBJ. 0XMSDA ....*....SOURCE STATEMENT....7....*....8....*....9....*....0....*....1....*....2....*....3....*....4
1 ;****************************************************************************************
2 ;* SAMPLE PROGRAM : Subtracting 8-digit BCD *
3 ;* FILE NAME : SAMPA.A30 *
4 ;* FUNCTION : Subtracting 8-digit BCD using registers *
5 ;****************************************************************************************
6 ;
7 ;---------- INCLUDE OF SFR FILE ----------------
8 ;
9 .list off ; don't draw up a prpgram list
10 .list on ; draw up a program list
11 ;
12 ;---------- DEFINE OF SYMBOLS ------------------
13 ;
14 00000400h VramTOP .equ 000400H ; top address of internal RAM
15 00002BFFh VramEND .equ 002BFFH ; end address of internal RAM
16 00002C00h VIstack .equ 002C00H ; stack pointer
17 000F0000h VprogTOP .equ 0F0000H ; top address of program area
18 000FA000h Vintbase .equ 0FA000H ; top address of variable vector table
19 000FFFDCh Vvector .equ 0FFFDCH ; top address of fixed vector table
20 00000380h SB_base .equ 000380H ; base address of SB recative
21 ;
22 ;---------- KEEP OF RAM AREA -------------------
23 ;
24 .section memory,data
25 00400 .org VramTOP
26 00400(000002H) result: .blkb 2
27
28 .section prog,code
29 F0000 .org VprogTOP
30 .sb SB_base ; assings aprovisional SB register value
31 .sbsym result ; place data in SB addressing mode
32 ;
33
34
35 ;---------- CLEAR OF RAM -----------------------
36 ;
37 F0000 reset:
38 F0000 EB40002C ldc #VIstack,ISP ; set Interrupt Stack Pointer
39 F0004 EB608003 ldc #SB_base,SB ; set SB register
40 ; ldintb #Vintbase ; set Interrupt TaBle register
41 ;
42 F0008 D900 Q mov.w #0,r0 ; 0 clear
43 F000A 75C30014 mov.w #(VramEND+1-VramTOP)/2,r3 ; number of times
44 F000E AA0004 S mov.w #VramTOP,a1 ; start address
45 F0011 7DEA sstr.w
46 ;
47 ;---------- INITIALLIZE ------------------------
48 ;
49 F0013 EB200F00 LDINTB #USER_vector_table
EB1000A0
50 F001B C7065D00 S mov.b #00000110B,int0ic ; INT0 Interrupt control reg set
51 F001F B572 Z* mov.b #0,pd8 ; port8 set input
52 F0021 C5017E S* mov.b #1,pur2 ; p8.1 is pull
53 ;
54 ;---------- MAIN PROGRAM -----------------------
55 ;BCD_subtract8
56 ; Input: ---------------------> Output:
57 ; R0 (Lower half of minuend) R0 (Lower half of subtraction result)
58 ; R1 (Lower half of subtrahend) R1 (Does not change)
59 ; R2 (Upper half of minuend) R2 (Upper half of subtraction result)
60 ; R3 (Upper half of subtrahend) R3 (Does not change)
61 F0024 main:
* M16C FAMILY ASSEMBLER * SOURCE LIST Sat Apr 09 03:13:07 2005 PAGE 002
SEQ. LOC. OBJ. 0XMSDA ....*....SOURCE STATEMENT....7....*....8....*....9....*....0....*....1....*....2....*....3....*....4
62 F0024 D900 Q mov.w #0000H,r0
63 F0026 D901 Q mov.w #0000H,r1
64 F0028 75C2FF01 mov.w #511,r2
65 F002C 77520000 sub.w #0000H,r2
66 F0030 6A2F jz exit
67 F0032 7DEC8348 haha: dadd.w #4883h,r0
68 F0036 7540 push.w r0
69 F0038 7310 mov.w r1,r0
70 F003A 7DEE0000 dadc.w #0,r0
71 F003E 7301 mov.w r0,r1
72 F0040 75D0 pop.w r0
73 F0042 F9F2EE sbjnz.w #1,r2,haha
74 F0045 7DEC5000 dadd.w #0050H,r0
75 F0049 7540 push.w r0
76 F004B 7310 mov.w r1,r0
77 F004D 7DEE0000 dadc.w #0,r0
78 F0051 7301 mov.w r0,r1
79 F0053 75D0 pop.w r0
80 F0055 08 S mov.b r0h,r0l
81 F0056 7221 mov.b r1l,r0h
82 F0058 A20004 S mov.w #VramTOP, a0
83 F005B 7306 mov.w r0, [a0]
84 F005D B2 inc.w a0
85 F005E 7316 mov.w r1, [a0]
86 F0060 7DF3 exit: wait
87 ;
88 ;---------- START-----------------------
89 ;
90 F0062 sw_int0:
91
92
93 F0062 FB reit
94 ;
95 ;---------- DUMMY UART0 INTERRUPT PROGRAM ------
96 ;
97 F0063 dummy:
98 F0063 FB reit;
99 ;
100 ;---------- VARIABLE VECTOR TABLE SET ----------
101 ;
102 .section val_vect,romdata
103 FA000 .org Vintbase
104 FA000 USER_vector_table:
105 FA000 63000F00 .lword dummy ; No0 Break Interrupt
106 FA004 63000F00 .lword dummy ; No1 Break Interrupt
107 FA008 63000F00 .lword dummy ; No2 Break Interrupt
108 FA00C 63000F00 .lword dummy ; No3 Break Interrupt
109 FA010 63000F00 .lword dummy ; No4 Break Interrupt
110 FA014 63000F00 .lword dummy ; No5 Break Interrupt
111 FA018 63000F00 .lword dummy ; No6 Break Interrupt
112 FA01C 63000F00 .lword dummy ; No7 Break Interrupt
113 FA020 63000F00 .lword dummy ; No8 Break Interrupt
114 FA024 63000F00 .lword dummy ; No9 Break Interrupt
115 FA028 63000F00 .lword dummy ; No10 Bus Clash Detect
116 FA02C 63000F00 .lword dummy ; No11 DMA0
117 FA030 63000F00 .lword dummy ; No12 DMA1
118 FA034 63000F00 .lword dummy ; No13 KEY IN Interrupt
119 FA038 63000F00 .lword dummy ; No14 A-D Interrupt
120 FA03C 63000F00 .lword dummy ; No15 UART2 Transmission Interrupt
121 FA040 63000F00 .lword dummy ; No16 UART2 receive Interrupt
122 FA044 63000F00 .lword dummy ; No17 UART0 Transmission Interrupt
123 FA048 63000F00 .lword dummy ; No18 UART0 receive Interrupt
* M16C FAMILY ASSEMBLER * SOURCE LIST Sat Apr 09 03:13:07 2005 PAGE 003
SEQ. LOC. OBJ. 0XMSDA ....*....SOURCE STATEMENT....7....*....8....*....9....*....0....*....1....*....2....*....3....*....4
124 FA04C 63000F00 .lword dummy ; No19 UART1 Transmission Interrupt
125 FA050 63000F00 .lword dummy ; No20 UART1 receive Interrupt
126 FA054 63000F00 .lword dummy ; No21 TimerA0 Interrupt
127 FA058 63000F00 .lword dummy ; No22 TimerA1 Interrupt
128 FA05C 63000F00 .lword dummy ; No23 TimerA2 Interrupt
129 FA060 63000F00 .lword dummy ; No24 TimerA3 Interrupt
130 FA064 63000F00 .lword dummy ; No25 TimerA4 Interrupt
131 FA068 63000F00 .lword dummy ; No26 TimerB0 Interrupt
132 FA06C 63000F00 .lword dummy ; No27 TimerB1 Interrupt
133 FA070 63000F00 .lword dummy ; No28 TimerB2 Interrupt
134 FA074 62000F00 .lword sw_int0 ; No29 INIT0(Active Low) Interrupt
135 FA078 63000F00 .lword dummy ; No30 INIT1(Active Low) Interrupt
136 FA07C 63000F00 .lword dummy ; No31 INIT2(Active Low) Interrupt
137 FA080 63000F00 .lword dummy ; No32 S/W Interrupt
138 FA084 63000F00 .lword dummy ; No33 S/W Interrupt
139 FA088 63000F00 .lword dummy ; No34 S/W Interrupt
140 FA08C 63000F00 .lword dummy ; No35 S/W Interrupt
141 FA090 63000F00 .lword dummy ; No36 S/W Interrupt
142 FA094 63000F00 .lword dummy ; No37 S/W Interrupt
143 FA098 63000F00 .lword dummy ; No38 S/W Interrupt
144 FA09C 63000F00 .lword dummy ; No39 S/W Interrupt
145 FA0A0 63000F00 .lword dummy ; No40 S/W Interrupt
146 FA0A4 63000F00 .lword dummy ; No41 S/W Interrupt
147 FA0A8 63000F00 .lword dummy ; No42 S/W Interrupt
148 FA0AC 63000F00 .lword dummy ; No43 S/W Interrupt
149 FA0B0 63000F00 .lword dummy ; No44 S/W Interrupt
150 FA0B4 63000F00 .lword dummy ; No45 S/W Interrupt
151 FA0B8 63000F00 .lword dummy ; No46 S/W Interrupt
152 FA0BC 63000F00 .lword dummy ; No47 S/W Interrupt
153 FA0C0 63000F00 .lword dummy ; No48 S/W Interrupt
154 FA0C4 63000F00 .lword dummy ; No49 S/W Interrupt
155 FA0C8 63000F00 .lword dummy ; No50 S/W Interrupt
156 FA0CC 63000F00 .lword dummy ; No51 S/W Interrupt
157 FA0D0 63000F00 .lword dummy ; No52 S/W Interrupt
158 FA0D4 63000F00 .lword dummy ; No53 S/W Interrupt
159 FA0D8 63000F00 .lword dummy ; No54 S/W Interrupt
160 FA0DC 63000F00 .lword dummy ; No55 S/W Interrupt
161 FA0E0 63000F00 .lword dummy ; No56 S/W Interrupt
162 FA0E4 63000F00 .lword dummy ; No57 S/W Interrupt
163 FA0E8 63000F00 .lword dummy ; No58 S/W Interrupt
164 FA0EC 63000F00 .lword dummy ; No59 S/W Interrupt
165 FA0F0 63000F00 .lword dummy ; No60 S/W Interrupt
166 FA0F4 63000F00 .lword dummy ; No61 S/W Interrupt
167 FA0F8 63000F00 .lword dummy ; No62 S/W Interrupt
168 FA0FC 63000F00 .lword dummy ; No63 S/W Interrupt
169 ;
170 ;---------- VECTOR TABLE ----------
171 ;
172 .section inter,romdata
173 FFFFC .org Vvector+(8*4)
174 FFFFC 00000F00 .lword reset
175 ;
176 ;---------- PROGRAM END ----------
177 ;
178 .end
Information List
TOTAL ERROR(S) 00000
TOTAL WARNING(S) 00000
TOTAL LINE(S) 00178 LINES
Section List
Attr Size Name
DATA 0000002(00002H) memory
CODE 0000100(00064H) prog
ROMDATA 0000256(00100H) val_vect
ROMDATA 0000004(00004H) inter
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -