5869dec19625edd182b1d8f020503ba9fb02361e
[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 0b 00 00 00      # call   +11 <main>
33 e8 %main
34 00 00 00
35 00 00 00 00
36 00 00 00 00
37
38 # @210
39 :main
40 bb 2a 00 00 00      # mov    $42,%ebx
41 b8 01 00 00 00      # mov    $0x1,%eax
42 cd 80               # int    $0x80
43
44 00 00 00 00
45
46 # # @210
47 # :main
48 # c9        # RET
49
50 # 00 00 00
51 # 00 00 00 00
52 # 00 00 00 00
53 # 00 00 00 00
54
55 # @220
56 :ELF_data
57 65 78 69 74 34 32 20 64 61 74 61 20 68 65 72 65 # exit42 data here"
58
59 # @230
60
61 :ELF_str
62 00                   # 0
63 5f 73 74 61 72 74 00 # _start
64 6d 61 69 6e 00       # main
65
66 00 00 00
67
68 # @240
69 :ELF_sym
70 00 00 00 00 # st-name
71 00 00 00 00 # st-offset: &_start - BaseAddress
72 00 00 00 00 # st-len   : &main - _start
73 00          # st-info = stt-func= 2
74 00          # st-other
75 01 00       # st-shndx: 1
76
77 # _start
78 01 00 00 00 # st-name
79 &_start
80 10 00 00 00 # st-len   : &main - _start
81 02          # st-info = stt-func= 2
82 00          # st-other
83 01 00       # st-shndx: 1
84
85 # main
86 08 00 00 00 # st-name
87 &main
88 10 00 00 00 # st-len   : &ELF_data - main
89 02          # st-info = stt-func= 2
90 00          # st-other
91 01 00       # st-shndx: 1