S5U1C62000A MANUAL
EPSON
115
(S1C60/62 FAMILY ASSEMBLER PACKAGE)
CHAPTER 8: DISASSEMBLER
8.5 Disassembling Output
The data/code mnemonics are restored from the target code. As for the branch instructions, a label will
be automatically generated like "LXXXX:" where XXXX denotes a hexadecimal number string. ".org"
pseudo-instruction is used to specify the starting location of each code block.
The following shows examples of disassembled sources:
Sample outputs
Absolute list file "test.abs"
Linker 62 ver x.xx Absolute list file "TEST.ALS" Sun May 03 14:16:16 1998
1:
; main.s
2:
; test program (main routine)
3:
;
4:
5:
;***** INITIAL SP ADDRESS DEFINITION *****
6:
#define
SP_INIT_ADDR 0x80
;SP init addr = 0x80
7:
8:
;***** BOOT, LOOP *****
9:
.global
INIT_RAM_BLK1
; subroutine
10:
.global
INC_RAM_BLK1
; subroutine
11:
12:
.org
0x100
13:
BOOT:
14: 0100 e08
ld
a,SP_INIT_ADDR>>4
; set SP
15: 0101 fe0
ld
sph,a
16: 0102 e00
ld
a, SP_INIT_ADDR&0xf
17: 0103 ff0
ld
spl,a
18: 0104 e42 (+)
pset 0x2
19: 0105 400
call
INIT_RAM_BLK1
; initialize RAM block 1
20:
LOOP:
21: 0106 e42 (+)
pset 0x2
22: 0107 406
call
INC_RAM_BLK1
; increment RAM block 1
23: 0108 006
jp
LOOP
; infinity loop
24:
; sub.s
25:
; test program (subroutines)
26:
27:
.global RAM_BLK1
28:
29:
.org
0x200
30:
31:
;***** RAM block 1 initialize *****
32:
33:
.global INIT_RAM_BLK1
34:
INIT_RAM_BLK1:
35: 0200 e00
ld
a,RAM_BLK1^h
36: 0201 e80
ld
xp,a
37: 0202 b00
ld
x,RAM_BLK1^l
;set RAM_BLK1 address to x
38: 0203 900
lbpx
mx,0
;set 0x0000 to RAM_BLK1
39: 0204 900
lbpx
mx,0
40: 0205 fdf
ret
41:
42:
;***** RAM block 1 increment *****
43:
44:
.global INC_RAM_BLK1
45:
INC_RAM_BLK1:
46: 0206 e00
ld
a,RAM_BLK1^h
47: 0207 e80
ld
xp,a
48: 0208 b00
ld
x,RAM_BLK1^l
;set RAM_BLK1 address to x
49: 0209 e00
ld
a,0
50: 020a f41
scf
51: 020b f28
acpx
mx,a
; increment 16bit value
52: 020c f28
acpx
mx,a
53: 020d f28
acpx
mx,a
54: 020e a98
adc
mx,a
55: 020f fdf
ret