From d8bb5b8957f705c3b0489878b19463f52ffb95ed Mon Sep 17 00:00:00 2001 From: pommicket Date: Thu, 10 Feb 2022 16:06:17 -0500 Subject: first working executable! --- 05/constants.b | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to '05/constants.b') diff --git a/05/constants.b b/05/constants.b index c6555ee..67825a3 100644 --- a/05/constants.b +++ b/05/constants.b @@ -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 -- cgit v1.2.3