49417ca9ce0b887e84f8618ebd4c0afe495d360b
[mes.git] / stage0 / elf32-body-exit-42.hex2
1 ### Copyright (C) 2017 Jan Nieuwenhuizen <janneke@gnu.org>
2 ### This file is part of stage0.
3 ###
4 ### stage0 is free software: you an redistribute it and/or modify
5 ### it under the terms of the GNU General Public License as published by
6 ### the Free Software Foundation, either version 3 of the License, or
7 ### (at your option) any later version.
8 ###
9 ### stage0 is distributed in the hope that it will be useful,
10 ### but WITHOUT ANY WARRANTY; without even the implied warranty of
11 ### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 ### GNU General Public License for more details.
13 ###
14 ### You should have received a copy of the GNU General Public License
15 ### along with stage0.  If not, see <http://www.gnu.org/licenses/>.
16
17 ### stage0's hex2 format for x86
18 ###    !<label>          1 byte relative
19 ###    $<label>          2 byte address
20 ###    @<label>          2 byte relative
21 ###    &<label>          4 byte address
22 ###    %<label>          4 byte relative
23 ###    local_<label>     function-local
24 ###    string_<index>    string #<index>
25
26 ### elf32-body-exit-42.hex2: 32 bit elf body in hex2 for `exit 42'
27
28 # @200
29 :ELF_text
30 :_start
31 # exit(42)
32 e8 %main                       # call   +11 <main>
33 00 00 00
34 00 00 00 00
35 00 00 00 00
36
37 # @210
38 :main
39 bb 2a 00 00 00                 # mov    $42,%ebx
40 b8 01 00 00 00                 # mov    $0x1,%eax
41 cd 80                          # int    $0x80
42
43 00 00 00 00
44
45 # @220
46 :ELF_data
47 65 78 69 74 34 32 20 64 61 74 61 20 68 65 72 65 # exit42 data here"
48
49 # @230
50
51 :ELF_str
52 00                             # 0
53 :ELF_str__start
54 5f 73 74 61 72 74 00           # _start
55 :ELF_str__main
56 6d 61 69 6e 00                 # main
57
58 00 00 00
59
60 # @240
61 :ELF_sym
62 00 00 00 00                    # st-name
63 00 00 00 00                    # st-offset: &_start - BaseAddress
64 00 00 00 00                    # st-len   : &main - _start
65 00                             # st-info = stt-func= 2
66 00                             # st-other
67 01 00                          # st-shndx: 1
68
69 # _start
70 %ELF_str__start>ELF_str        # st-name
71 &_start
72 10 00 00 00                    # st-len   : &main - _start
73 02                             # st-info = stt-func= 2
74 00                             # st-other
75 01 00                          # st-shndx: 1
76
77 # main
78 %ELF_str__main>ELF_str         # st-name
79 &main
80 10 00 00 00                    # st-len   : &ELF_data - main
81 02                             # st-info = stt-func= 2
82 00                             # st-other
83 01 00                          # st-shndx: 1