404 lines
No EOL
18 KiB
Text
404 lines
No EOL
18 KiB
Text
文件:MACRO.ASM 盛群编译器版本 2.86 页次1
|
||
|
||
|
||
1 0000 ;*******************************************************************************
|
||
2 0000 ;*
|
||
3 0000 ;* (c) Copyright 2004, Holtek Semiconductor Inc.
|
||
4 0000 ;*
|
||
5 0000 ;******************************************************************************/
|
||
6 0000 ;*******************************************************************************
|
||
7 0000 ;MODULE: main.asm
|
||
8 0000
|
||
9 0000 ;INITIAL: 11/12/2004
|
||
10 0000
|
||
11 0000 ;AUTHOR: C351 Ansonku.
|
||
12 0000
|
||
13 0000 ;NOTE: HT48RB4 16 bit operation
|
||
14 0000
|
||
15 0000 ;REVISION: First issue
|
||
16 0000 ;*******************************************************************************
|
||
17 0000 ;*******************************************************************************
|
||
18 0000 ; 16 bit ADD with signed
|
||
19 0000 ; use ADD16 XH,XL,YH,YL,ZH,ZL
|
||
20 0000 ; operation
|
||
21 0000 ; XH XL
|
||
22 0000 ; +YH YL
|
||
23 0000 ; --------------
|
||
24 0000 ; ZH ZL
|
||
25 0000 ;*******************************************************************************
|
||
26 0000 ADD16 MACRO XH,XL,YH,YL,ZH,ZL
|
||
27 0000 MOV A,XL
|
||
28 0000 ADD A,YL
|
||
29 0000 MOV ZL,A
|
||
30 0000 MOV A,XH
|
||
31 0000 ADC A,YH
|
||
32 0000 MOV ZH,A
|
||
33 0000 ENDM
|
||
34 0000 ;*******************************************************************************
|
||
35 0000 ; 16 bit ADD with unsigned
|
||
36 0000 ; use ADD16 XH,XL,YL,ZH,ZL
|
||
37 0000 ; operation
|
||
38 0000 ; XH XL
|
||
39 0000 ; + YL
|
||
40 0000 ; --------------
|
||
41 0000 ; ZH ZL
|
||
42 0000 ;*******************************************************************************
|
||
43 0000 ADD16U MACRO XH,XL,YL,ZH,ZL
|
||
44 0000 mov a,xh
|
||
45 0000 mov zh,a
|
||
46 0000 MOV A,XL
|
||
47 0000 ADD A,YL
|
||
48 0000 SZ C
|
||
49 0000 INC ZH
|
||
50 0000 MOV ZL,A
|
||
51 0000 ENDM
|
||
52 0000
|
||
53 0000
|
||
54 0000 ;*******************************************************************************
|
||
55 0000 ; 16 bit sub with signed
|
||
56 0000 ; use SUB16 XH,XL,YH,YL,ZH,ZL
|
||
57 0000 ; operation
|
||
58 0000 ; XH XL
|
||
59 0000 ; -YH YL
|
||
文件:MACRO.ASM 盛群编译器版本 2.86 页次2
|
||
|
||
60 0000 ; --------------
|
||
61 0000 ; ZH ZL
|
||
62 0000 ;*******************************************************************************
|
||
63 0000 SUB16 MACRO XH,XL,YH,YL,ZH,ZL
|
||
64 0000 MOV A,XL
|
||
65 0000 CLR C
|
||
66 0000 SUB A,YL
|
||
67 0000 MOV ZL,A
|
||
68 0000 MOV A,XH
|
||
69 0000 SBC A,YH
|
||
70 0000 MOV ZH,A
|
||
71 0000
|
||
72 0000 ENDM
|
||
73 0000
|
||
74 0000
|
||
75 0000 ;*******************************************************************************
|
||
76 0000 ; 16 bit shift right with signed
|
||
77 0000 ; use RR16 XH,XL,ZH,ZL
|
||
78 0000 ; operation
|
||
79 0000 ;*******************************************************************************
|
||
80 0000 RR16 MACRO XH,XL,ZH,ZL
|
||
81 0000 CLR C
|
||
82 0000 MOV A,XH
|
||
83 0000 AND A,80H
|
||
84 0000 SNZ Z
|
||
85 0000 SET C
|
||
86 0000 RRCA XH
|
||
87 0000 MOV ZH,A
|
||
88 0000 RRCA XL
|
||
89 0000 MOV ZL,A
|
||
90 0000 ENDM
|
||
91 0000 ;*******************************************************************************
|
||
92 0000 ; 16 bit shift left with signed
|
||
93 0000 ; use RL16 XH,XL,ZH,ZL
|
||
94 0000 ; operation
|
||
95 0000 ;*******************************************************************************
|
||
96 0000 RL16 MACRO XH,XL,ZH,ZL
|
||
97 0000 CLR C
|
||
98 0000 SZ XL.7
|
||
99 0000 SET C
|
||
100 0000
|
||
101 0000 RLCA XH
|
||
102 0000 MOV ZH,A
|
||
103 0000 CLR C
|
||
104 0000 RLCA XL
|
||
105 0000 MOV ZL,A
|
||
106 0000 ENDM
|
||
107 0000 ;*******************************************************************************
|
||
108 0000 ; 16 bit shift left with signed
|
||
109 0000 ; use RL16N XH,XL,ZH,ZL
|
||
110 0000 ; operation
|
||
111 0000 ;*******************************************************************************
|
||
112 0000 RL16N MACRO XH,XL,ZH,ZL,N
|
||
113 0000 ;MOV A,8
|
||
114 0000 ;SUB A,N
|
||
115 0000 ;mov a,Xl SHR A
|
||
116 0000 ;mov zh,a
|
||
117 0000 ;mov a,xh SHL N
|
||
118 0000 ;orm a,zh
|
||
119 0000 ENDM
|
||
文件:MACRO.ASM 盛群编译器版本 2.86 页次3
|
||
|
||
120 0000 ;*******************************************************************************
|
||
121 0000 ; 8 bit multiply with signed
|
||
122 0000 ; use mul8 X,Y,ZH,ZL
|
||
123 0000 ; operation
|
||
124 0000 ;*******************************************************************************
|
||
125 0000 Mul8 MACRO X,Y,ZH,ZL
|
||
126 0000 Local Mul8_End
|
||
127 0000 CLR operator1H ;sum
|
||
128 0000 CLR operator1L
|
||
129 0000 CLR operator2H ;multiply
|
||
130 0000 CLR operator3H ;operator
|
||
131 0000 CLR operator3L
|
||
132 0000 mov A,Y
|
||
133 0000 mov operator2L,A
|
||
134 0000
|
||
135 0000 SZ X.7
|
||
136 0000 SET operator2H
|
||
137 0000 Mul16_doloop:
|
||
138 0000 MOV A,6
|
||
139 0000 MOV Counter3,A
|
||
140 0000 SDZ Counter3
|
||
141 0000 JMP Mul8_End
|
||
142 0000 SNZ X.Counter3
|
||
143 0000 jmp Mul18_Next_Bit
|
||
144 0000 RL16 operator2H,operator2L,operator3H,operator3L
|
||
145 0000 ADD16 operator3H,operator3L,operator1H,operaotr1L,operator1H,operator1L
|
||
146 0000
|
||
147 0000
|
||
148 0000 Mul18_Next_Bit:
|
||
149 0000 JMP Mul16_doloop
|
||
150 0000
|
||
151 0000
|
||
152 0000 Mul8_End:
|
||
153 0000
|
||
154 0000
|
||
155 0000 ENDM
|
||
156 0000
|
||
157 0000 ;*******************************************************************************
|
||
158 0000 ; 8 bit macro
|
||
159 0000 ;*******************************************************************************
|
||
160 0000 ;*******************************************************************************
|
||
161 0000 ; 16 bit ADD with signed
|
||
162 0000 ; use ADD16 X,Y,Z
|
||
163 0000 ; operation
|
||
164 0000 ; X
|
||
165 0000 ; +Y
|
||
166 0000 ; --------------
|
||
167 0000 ; Z
|
||
168 0000 ;*******************************************************************************
|
||
169 0000 ADD8 MACRO X1,Y1,Z1
|
||
170 0000 MOV A,X1
|
||
171 0000 ADD A,Y1
|
||
172 0000 MOV Z1,A
|
||
173 0000 ENDM
|
||
174 0000
|
||
175 0000 ;*******************************************************************************
|
||
176 0000 ; 16 bit sub with signed
|
||
177 0000 ; use SUB16 X,Y,Z
|
||
178 0000 ; operation
|
||
179 0000 ; X
|
||
文件:MACRO.ASM 盛群编译器版本 2.86 页次4
|
||
|
||
180 0000 ; -Y
|
||
181 0000 ; --------------
|
||
182 0000 ; Z
|
||
183 0000 ;*******************************************************************************
|
||
184 0000 SUB8 MACRO X1,Y1,Z1
|
||
185 0000 MOV A,X1
|
||
186 0000 SUB A,Y1
|
||
187 0000 MOV Z1,A
|
||
188 0000 ENDM
|
||
189 0000
|
||
190 0000 ;*******************************************************************************
|
||
191 0000 ; 8 bit shift right with signed
|
||
192 0000 ; use RR8 X,Z
|
||
193 0000 ; operation
|
||
194 0000 ;*******************************************************************************
|
||
195 0000 RR8 MACRO X,Y
|
||
196 0000 Local RR8_End,RR8_Modify_FF,RR8_Modify_FF_End
|
||
197 0000 mov a,X
|
||
198 0000 inc acc
|
||
199 0000 SZ Z
|
||
200 0000 jmp RR8_Modify_FF
|
||
201 0000 jmp RR8_Modify_FF_End
|
||
202 0000 RR8_Modify_FF:
|
||
203 0000 clr Y
|
||
204 0000 jmp RR8_End
|
||
205 0000
|
||
206 0000 RR8_Modify_FF_End:
|
||
207 0000 CLR C
|
||
208 0000 MOV A,X
|
||
209 0000 AND A,80H
|
||
210 0000 SNZ Z
|
||
211 0000 SET C
|
||
212 0000 RRCA X
|
||
213 0000 MOV Y,A
|
||
214 0000
|
||
215 0000
|
||
216 0000
|
||
217 0000 RR8_End:
|
||
218 0000 ENDM
|
||
219 0000 ;*******************************************************************************
|
||
220 0000 ; 8 bit shift left with signed
|
||
221 0000 ; use RL16 X,Z
|
||
222 0000 ; operation
|
||
223 0000 ;*******************************************************************************
|
||
224 0000 RL8 MACRO X,Y
|
||
225 0000 CLR C
|
||
226 0000 RLCA X
|
||
227 0000 MOV Y,A
|
||
228 0000 ENDM
|
||
229 0000
|
||
230 0000 ;*******************************************************************************
|
||
231 0000 ; 8 bit abs
|
||
232 0000 ; use ABS8 X,Y
|
||
233 0000 ; operation
|
||
234 0000 ;*******************************************************************************
|
||
235 0000 ABS8 MACRO X,Y
|
||
236 0000 Local ABS8_End
|
||
237 0000
|
||
238 0000 kmov y,x
|
||
239 0000 mov a,x
|
||
文件:MACRO.ASM 盛群编译器版本 2.86 页次5
|
||
|
||
240 0000 and a,80H
|
||
241 0000 SZ Z
|
||
242 0000 jmp ABS8_End
|
||
243 0000 CPL y
|
||
244 0000 INC y
|
||
245 0000
|
||
246 0000 ABS8_End:
|
||
247 0000
|
||
248 0000 ENDM
|
||
249 0000
|
||
250 0000
|
||
251 0000
|
||
252 0000
|
||
253 0000
|
||
254 0000
|
||
255 0000 ;*******************************************************************************
|
||
256 0000 ; kmov
|
||
257 0000 ; use kmov destination,source
|
||
258 0000 ; operation
|
||
259 0000 ;*******************************************************************************
|
||
260 0000 KMOV MACRO mem1,mem2
|
||
261 0000 mov a,mem2
|
||
262 0000 mov mem1,a
|
||
263 0000 ENDM
|
||
264 0000
|
||
265 0000 KOR MACRO mem1,mem2
|
||
266 0000 mov a,mem2
|
||
267 0000 orm a,mem1
|
||
268 0000 ENDM
|
||
269 0000
|
||
270 0000
|
||
271 0000
|
||
272 0000 ;*******************************************************************************
|
||
273 0000 ; make oled column address
|
||
274 0000 ; use oled_make_col_add source,MSB,LSB
|
||
275 0000 ;
|
||
276 0000 ;*******************************************************************************
|
||
277 0000 oled_make_col_add macro mem1,mem2,mem3
|
||
278 0000 mov a,0FH
|
||
279 0000 AND a,mem1
|
||
280 0000 mov mem3,a
|
||
281 0000 mov a,70H
|
||
282 0000 and a,mem1
|
||
283 0000 mov mem2,a
|
||
284 0000 clr c
|
||
285 0000 rrc mem2
|
||
286 0000 clr c
|
||
287 0000 rrc mem2
|
||
288 0000 clr c
|
||
289 0000 rrc mem2
|
||
290 0000 clr c
|
||
291 0000 rrc mem2
|
||
292 0000 set mem2.4
|
||
293 0000
|
||
294 0000 endm
|
||
295 0000
|
||
296 0000
|
||
297 0000
|
||
298 0000 ;***************************************
|
||
299 0000
|
||
文件:MACRO.ASM 盛群编译器版本 2.86 页次6
|
||
|
||
300 0000 XMOV MACRO mem2,mem1
|
||
301 0000 mov a,mem1
|
||
302 0000 mov mem2,a
|
||
303 0000 ENDM
|
||
304 0000 ;-------------------------------------
|
||
305 0000 ;;Move ARG2->ARG1(move by bit)
|
||
306 0000 xmov1 MACRO ARG1,ARG2
|
||
307 0000 LOCAL xmov1_1,xmov1_end
|
||
308 0000 sz ARG2
|
||
309 0000 jmp xmov1_1
|
||
310 0000 clr ARG1
|
||
311 0000 jmp xmov1_end
|
||
312 0000 xmov1_1:
|
||
313 0000 set ARG1
|
||
314 0000 xmov1_end:
|
||
315 0000 ENDM
|
||
316 0000 ;-------------------------------------
|
||
317 0000 ;;if MEM2=MEM1 =>Skip Next Instruction
|
||
318 0000 EQUJMP MACRO MEM2,MEM1
|
||
319 0000 MOV A,MEM1
|
||
320 0000 XOR A,MEM2
|
||
321 0000 SNZ Z
|
||
322 0000 ENDM
|
||
323 0000 ;;------------------------
|
||
324 0000
|
||
325 0000 ;;if MEM2!=MEM1 =>Skip Next Instruction
|
||
326 0000 NEJMP MACRO MEM2,MEM1
|
||
327 0000 MOV A,MEM1
|
||
328 0000 XOR A,MEM2
|
||
329 0000 SZ Z
|
||
330 0000 ENDM
|
||
331 0000 ;;------------------------
|
||
332 0000 ;;if (REG1==REG2) goto REG3
|
||
333 0000 JLER MACRO REG1,REG2,REG3
|
||
334 0000 mov a,REG1
|
||
335 0000 sub a,REG2
|
||
336 0000 sz z
|
||
337 0000 jmp REG3
|
||
338 0000 ENDM
|
||
339 0000 ;**********************************************
|
||
340 0000 ;MACRO: JLNR
|
||
341 0000 ;PURPOSE: REG1 != REG2 goto REG3
|
||
342 0000 ;**********************************************
|
||
343 0000 JLNR MACRO REG1,REG2,REG3
|
||
344 0000 mov a,REG1
|
||
345 0000 sub a,REG2
|
||
346 0000 snz z
|
||
347 0000 jmp REG3
|
||
348 0000 ENDM
|
||
349 0000 ;;------------------------
|
||
350 0000 ;;if MEM2>MEM1 =>Skip Next Instruction
|
||
351 0000 LBRJ MACRO MEM2,MEM1
|
||
352 0000 MOV A,MEM1
|
||
353 0000 SUB A,MEM2
|
||
354 0000 SZ C
|
||
355 0000 ENDM
|
||
356 0000 ;;------------------------
|
||
357 0000
|
||
358 0000 ;;if MEM2<=MEM1 =>Skip Next Instruction
|
||
359 0000 LSERJ MACRO MEM2,MEM1
|
||
文件:MACRO.ASM 盛群编译器版本 2.86 页次7
|
||
|
||
360 0000 MOV A,MEM1
|
||
361 0000 SUB A,MEM2
|
||
362 0000 SNZ C
|
||
363 0000 ENDM
|
||
364 0000 ;;------------------------
|
||
365 0000
|
||
366 0000 ;;if MEM2<MEM1 =>Skip Next Instruction
|
||
367 0000 LSRJ MACRO MEM2,MEM1
|
||
368 0000 MOV A,MEM2
|
||
369 0000 SUB A,MEM1
|
||
370 0000 SZ C
|
||
371 0000 ENDM
|
||
372 0000 ;;------------------------
|
||
373 0000
|
||
374 0000 ;;if MEM2>=MEM1 =>Skip Next Instruction
|
||
375 0000 LBERJ MACRO MEM2,MEM1
|
||
376 0000 MOV A,MEM2
|
||
377 0000 SUB A,MEM1
|
||
378 0000 SNZ C
|
||
379 0000 ENDM
|
||
380 0000 ;;------------------------
|
||
381 0000
|
||
382 0000 SWAPWORD MACRO DA
|
||
383 0000 EQU (DA>>8)+(DA<<8)
|
||
384 0000 ENDM
|
||
385 0000 ;;------------------------
|
||
386 0000
|
||
|
||
|
||
0 Errors |