1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
1 ;--------------------------------------------------------
2 ; File Created by SDCC : free open source ANSI-C Compiler
3 ; Version 3.6.0 #9615 (Linux)
4 ;--------------------------------------------------------
5 .module main
6 .optsdcc -mz80
7
8 ;--------------------------------------------------------
9 ; Public variables in this module
10 ;--------------------------------------------------------
11 .globl _main
12 .globl _usart_write
13 .globl _usart_init
14 ;--------------------------------------------------------
15 ; special function registers
16 ;--------------------------------------------------------
17 ;--------------------------------------------------------
18 ; ram data
19 ;--------------------------------------------------------
20 .area _DATA
21 ;--------------------------------------------------------
22 ; ram data
23 ;--------------------------------------------------------
24 .area _INITIALIZED
25 ;--------------------------------------------------------
26 ; absolute external ram data
27 ;--------------------------------------------------------
28 .area _DABS (ABS)
29 ;--------------------------------------------------------
30 ; global & static initialisations
31 ;--------------------------------------------------------
32 .area _HOME
33 .area _GSINIT
34 .area _GSFINAL
35 .area _GSINIT
36 ;--------------------------------------------------------
37 ; Home
38 ;--------------------------------------------------------
39 .area _HOME
40 .area _HOME
41 ;--------------------------------------------------------
42 ; code
43 ;--------------------------------------------------------
44 .area _CODE
45 ;main.c:3: void main(void)
46 ; ---------------------------------
47 ; Function main
48 ; ---------------------------------
0000 49 _main::
50 ;main.c:5: usart_init(USART_BAUDRATE_1200, USART_PARITY_EVEN, USART_STOP_BITS_1);
0000 21 0A 00 [10] 51 ld hl,#0x000a
0003 E5 [11] 52 push hl
0004 2E 01 [ 7] 53 ld l, #0x01
0006 E5 [11] 54 push hl
0007 2E 60 [ 7] 55 ld l, #0x60
0009 E5 [11] 56 push hl
000A CDr00r00 [17] 57 call _usart_init
000D 21 06 00 [10] 58 ld hl,#6
0010 39 [11] 59 add hl,sp
0011 F9 [ 6] 60 ld sp,hl
61 ;main.c:6: usart_write("Hello, World!\n", 13);
0012 21 0D 00 [10] 62 ld hl,#0x000d
0015 E5 [11] 63 push hl
0016 21r2Er00 [10] 64 ld hl,#___str_0
0019 E5 [11] 65 push hl
001A CDr00r00 [17] 66 call _usart_write
001D F1 [10] 67 pop af
001E F1 [10] 68 pop af
69 ;main.c:8: while(1) {
001F 70 00102$:
71 ;main.c:9: usart_write("done\n", 5);
001F 21 05 00 [10] 72 ld hl,#0x0005
0022 E5 [11] 73 push hl
0023 21r3Dr00 [10] 74 ld hl,#___str_1
0026 E5 [11] 75 push hl
0027 CDr00r00 [17] 76 call _usart_write
002A F1 [10] 77 pop af
002B F1 [10] 78 pop af
002C 18 F1 [12] 79 jr 00102$
002E 80 ___str_0:
002E 48 65 6C 6C 6F 2C 81 .ascii "Hello, World!"
20 57 6F 72 6C 64
21
003B 0A 82 .db 0x0a
003C 00 83 .db 0x00
003D 84 ___str_1:
003D 64 6F 6E 65 85 .ascii "done"
0041 0A 86 .db 0x0a
0042 00 87 .db 0x00
88 .area _CODE
89 .area _INITIALIZER
90 .area _CABS (ABS)
|