mescc: Remove jump calculation, use labels: prepare.
[mes.git] / stage0 / elf32.hex2
1 ### Copyright (C) 2016 Jeremiah Orians
2 ### Copyright (C) 2017 Jan Nieuwenhuizen <janneke@gnu.org>
3 ### This file is part of stage0.
4 ###
5 ### stage0 is free software: you an redistribute it and/or modify
6 ### it under the terms of the GNU General Public License as published by
7 ### the Free Software Foundation, either version 3 of the License, or
8 ### (at your option) any later version.
9 ###
10 ### stage0 is distributed in the hope that it will be useful,
11 ### but WITHOUT ANY WARRANTY; without even the implied warranty of
12 ### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 ### GNU General Public License for more details.
14 ###
15 ### You should have received a copy of the GNU General Public License
16 ### along with stage0.  If not, see <http://www.gnu.org/licenses/>.
17
18 ### elf32.hex2: 32 bit elf header in hex2
19
20 ## ELF Header
21 7F 45 4C 46           # e_ident[EI_MAG0-3] ELF's magic number
22
23 01                    # e_ident[EI_CLASS] Indicating 32 bit
24 01                    # e_ident[EI_DATA] Indicating little endianness
25 01                    # e_ident[EI_VERSION] Indicating original elf
26
27 00                    # e_ident[EI_OSABI] Set at 0 because none cares
28 00                    # e_ident[EI_ABIVERSION] See above
29
30 00 00 00 00 00 00 00  # e_ident[EI_PAD]
31 02 00                 # e_type Indicating Executable
32 03 00                 # e_machine Indicating AMD64
33 01 00 00 00           # e_version Indicating original elf
34
35 54 80 04 08           # e_entry Address of the entry point
36 34 00 00 00           # e_phoff Address of program header table
37 00 00 00 00           # e_shoff Address of section header table
38
39 00 00 00 00           # e_flags
40 34 00                 # e_ehsize Indicating our 52 Byte header
41
42 20 00                 # e_phentsize size of a program header table
43 01 00                 # e_phnum number of entries in program table
44
45 00 00                 # e_shentsize size of a section header table
46 00 00                 # e_shnum number of entries in section table
47
48 00 00                 # e_shstrndx index of the section names
49
50 ## Program Header
51 01 00 00 00           # p_type
52 00 00 00 00           # p_offset
53
54 00 80 04 08           # p_vaddr
55 00 80 04 08           # p_physaddr
56
57 ## FIXME!
58 ##60 00 00 00           # p_filesz
59 ##60 00 00 00           # p_memsz
60
61 #65 01 00 00           # p_filesz
62 #65 01 00 00           # p_memsz
63
64 ff ff 00 00           # p_filesz
65 ff ff 00 00           # p_memsz
66
67
68 07 00 00 00           # p_flags
69 01 00 00 00           # alignment
70
71 ## _start
72 # exit (42) -- works!
73 #bb 2a 00 00 00      # mov    $42,%ebx
74 #b8 01 00 00 00      # mov    $0x1,%eax
75 #cd 80               # int    $0x80