first working executable!

This commit is contained in:
pommicket 2022-02-10 16:06:17 -05:00
parent b88de92fc7
commit d8bb5b8957
4 changed files with 134 additions and 13 deletions

View file

@ -1,15 +1,18 @@
; this is the format of the executables we produce:
; elf header 2MB addresses 0x000000-0x200000 (no, it won't actually take up that much space)
; entry point 2MB addresses 0x200000-0x3fffff this is where we put the code to call main(), etc. (again, it won't actually take up that much space)
; code (functions) 4MB addresses 0x400000-0x7fffff
; functions 4MB addresses 0x400000-0x7fffff
; read-only data 4MB addresses 0x800000-0xbfffff
; read-write data 4MB addresses 0xc00000-0xffffff
; note that file offsets and runtime addresses are the same.
; you should be able to change these constants without breaking anything:
; you should be able to change these constants (in a way that's consistent) without breaking anything:
#define ENTRY_ADDR 0x200000
#define FUNCTIONS_ADDR 0x400000
#define TOTAL_CODE_SIZE 0x600000
#define RODATA_ADDR 0x800000
#define RODATA_SIZE 0x400000
#define RWDATA_ADDR 0xc00000
#define RWDATA_SIZE 0x400000
#define RWDATA_END 0x1000000
#define EXECUTABLE_SIZE 0x1000000