# Program header - 56 bytes
# =========================

# p_type - loadable segment
01 00 00 00

# p_flags - read and execute
05 00 00 00

# p_offset - load the entire program from the beginning
# this will then include the ELF header and program header as well
# could offset by the ELF and program header I guess
# but leave it for now
00 00 00 00 00 00 00 00

# p_vaddr - virtual memory load position
# this is a common place. Needs to be page aligned
00 00 40 00 00 00 00 00

# p_paddr - physical memory load position
# not really used as far as i can tell - set to same as p_vaddr
00 00 40 00 00 00 00 00

# p_filesz - size of the file to load
# This is to the end of the .text section, which for us is just
# the program size, ELF header, and program header
# so 64 + 56 + 16 = 136 = 0x88
88 00 00 00 00 00 00 00

# p_memsz - size of the file once loaded into memory
# For us this is the same as above for now
88 00 00 00 00 00 00 00

# p_align - something to do with alignment, p_offset and p_vaddr
# need more reading on that
00 00 20 00 00 00 00 00

