Here's the MAP file from the linker built version of the kernel (which crashes because I haven't had the time to redirect the driver calls)
Memory Configuration
Name Origin Length Attributes
*default* 0x0000000000000000 0xffffffffffffffff
Linker script and memory map
0x0000000000000600 phys = 0x600
.text 0x0000000000000600 0x64e0
0x0000000000000600 code = .
*(.text)
.text 0x0000000000000600 0x4c1 obj/kernel.o
0x0000000000000601 main
0x0000000000000ac1 DriverSpaceStart
0x0000000000000ac1 DriverSpaceEnd
*fill* 0x0000000000000ac1 0xf
.text 0x0000000000000ad0 0x5a7 obj/api/lists.o
0x0000000000000ad0 LMElementAddressGet
0x0000000000000b31 LMElementCountGet
0x0000000000000ba7 LMElementDelete
0x0000000000000c07 LMElementDuplicate
0x0000000000000c67 LMElementSizeGet
0x0000000000000cc5 LMItemAddAtSlot
0x0000000000000d3c LMListInit
0x0000000000000db5 LMSlotFindFirstFree
0x0000000000000e4b LM_Internal_ElementAddressGet
*fill* 0x0000000000001077 0x9
.text 0x0000000000001080 0x84 obj/api/misc.o
0x0000000000001080 SetSystemAPM
0x00000000000010a0 BCDToDecimal
0x00000000000010e9 TimerWait
*fill* 0x0000000000001104 0xc
.text 0x0000000000001110 0xaec obj/api/strings.o
0x0000000000001110 ConvertByteToHexString16
0x0000000000001144 ConvertWordToHexString16
0x0000000000001215 ConvertNumberHexToString
0x00000000000013e3 ConvertStringHexToNumber
0x0000000000001517 StringCharAppend
0x00000000000015ff StringLength
0x000000000000178c StringTokenBinary
0x0000000000001817 StringTokenDecimal
0x00000000000018a2 StringTokenHexadecimal
0x00000000000019b8 StringTokenString
0x0000000000001a40 StringTrimRight
0x0000000000001a70 StringTruncateLeft
0x0000000000001aa3 StringTruncateRight
*fill* 0x0000000000001bfc 0x4
.text 0x0000000000001c00 0xbfa obj/drivers/PS2Controller.o
0x0000000000001e45 KeyGet
0x0000000000001e80 KeyWait
*fill* 0x00000000000027fa 0x6
.text 0x0000000000002800 0xe5 obj/drivers/FAT12.o
*fill* 0x00000000000028e5 0xb
.text 0x00000000000028f0 0x6cc obj/drivers/ATAController.o
*fill* 0x0000000000002fbc 0x4
.text 0x0000000000002fc0 0x665 obj/io/serial.o
*fill* 0x0000000000003625 0xb
.text 0x0000000000003630 0xaa obj/system/hardware.o
0x0000000000003630 DriverLegacyLoad
0x000000000000367b PITInit
0x0000000000003690 Random
0x00000000000036c5 Reboot
*fill* 0x00000000000036da 0x6
.text 0x00000000000036e0 0xc1e obj/system/interrupts.o
0x0000000000003719 CriticalError
0x00000000000039a7 IDTInit
0x0000000000003a6a InterruptHandlerSet
0x0000000000003aae InterruptUnimplemented
0x0000000000003ac8 ISRInitAll
*fill* 0x00000000000042fe 0x2
.text 0x0000000000004300 0x1c2 obj/system/partitions.o
0x0000000000004300 PartitionEnumerate
*fill* 0x00000000000044c2 0xe
.text 0x00000000000044d0 0x5b6 obj/system/pci.o
0x00000000000044d0 PCIProbe
0x00000000000044ee PCICalculateNext
0x000000000000464f PCIGetNextFunction
0x00000000000046a3 PCIInitBus
0x0000000000004841 PCILoadDrivers
0x00000000000049e0 PCIReadAll
0x0000000000004a14 PCIReadDWord
*fill* 0x0000000000004a86 0xa
.text 0x0000000000004a90 0x34 obj/system/cmos.o
*fill* 0x0000000000004ac4 0xc
.text 0x0000000000004ad0 0x2f obj/system/power.o
0x0000000000004ad0 APMEnable
0x0000000000004ad1 APMDisable
*fill* 0x0000000000004aff 0x1
.text 0x0000000000004b00 0x8a obj/system/cpu.o
0x0000000000004b00 SetSystemCPUID
*fill* 0x0000000000004b8a 0x6
.text 0x0000000000004b90 0xe2 obj/system/pic.o
0x0000000000004b90 PICInit
0x0000000000004be7 PICIntComplete
0x0000000000004bfa PICIRQDisable
0x0000000000004c23 PICIRQDisableAll
0x0000000000004c36 PICIRQEnable
0x0000000000004c5f PICIRQEnableAll
*fill* 0x0000000000004c72 0xe
.text 0x0000000000004c80 0x9ca obj/system/memory.o
0x0000000000004cca A20Enable
0x0000000000004dca MemProbe
0x0000000000004f46 MemAllocate
0x0000000000004ff8 MemAllocateAligned
0x000000000000511b MemCopy
0x0000000000005198 MemFill
0x0000000000005233 MemInit
0x00000000000053c9 MemSearchString
0x00000000000055a5 MemSwapWordBytes
*fill* 0x000000000000564a 0x6
.text 0x0000000000005650 0xb74 obj/system/debug.o
0x0000000000005650 DebugInstacrash
0x0000000000005656 DebugMemoryDetails
0x000000000000572c DebugMenu
0x00000000000058b2 DebugPCIDevices
0x0000000000005dc4 DebugRAMBrowser
0x0000000000005f85 DebugStackTrace
0x0000000000005fdc DebugSystemInfo
0x00000000000061b7 DebugWaitForEscape
*fill* 0x00000000000061c4 0xc
.text 0x00000000000061d0 0x15e obj/system/tasks.o
0x00000000000061d0 TaskDetermineNext
0x00000000000061d7 TaskInit
0x0000000000006213 TaskKill
0x000000000000624a TaskNew
0x00000000000062e0 TaskSwitch
*fill* 0x000000000000632e 0x2
.text 0x0000000000006330 0x17a obj/system/rtc.o
0x0000000000006330 RTCAdjustBCD
0x00000000000063a2 RTCInit
0x00000000000063f0 RTCInterruptHandler
*fill* 0x00000000000064aa 0x6
.text 0x00000000000064b0 0x131 obj/system/gdt.o
*fill* 0x00000000000065e1 0xf
.text 0x00000000000065f0 0x4ef obj/video/screen.o
0x00000000000065f0 Print16
0x0000000000006682 PrintIfConfigBits16
0x000000000000669f PrintRegs16
0x0000000000006717 ScreenClear16
0x0000000000006748 ScreenScroll16
0x0000000000006796 CursorHome
0x00000000000067ab Print32
0x0000000000006876 PrintIfConfigBits32
0x00000000000068b5 PrintRAM32
0x0000000000006987 PrintRegs32
0x0000000000006a69 ScreenClear32
0x0000000000006a99 ScreenScroll32
*(.rodata)
0x0000000000006ae0 . = ALIGN (0x4)
*fill* 0x0000000000006adf 0x1
data: 0x0000000000006ae0 0x39
data: 0x0000000000006ae0 0x39 obj/system/hardware.o
.data 0x0000000000006b1c 0x2248
0x0000000000006b1c data = .
*(.data)
.data 0x0000000000006b1c 0x2d2 obj/kernel.o
*fill* 0x0000000000006dee 0x2
.data 0x0000000000006df0 0xba obj/api/lists.o
*fill* 0x0000000000006eaa 0x2
.data 0x0000000000006eac 0xba obj/api/misc.o
*fill* 0x0000000000006f66 0x2
.data 0x0000000000006f68 0x10 obj/api/strings.o
.data 0x0000000000006f78 0x280 obj/drivers/PS2Controller.o
.data 0x00000000000071f8 0xe7 obj/drivers/FAT12.o
*fill* 0x00000000000072df 0x1
.data 0x00000000000072e0 0x13b obj/drivers/ATAController.o
*fill* 0x000000000000741b 0x1
.data 0x000000000000741c 0xba obj/io/serial.o
*fill* 0x00000000000074d6 0x2
.data 0x00000000000074d8 0xba obj/system/hardware.o
*fill* 0x0000000000007592 0x2
.data 0x0000000000007594 0x565 obj/system/interrupts.o
*fill* 0x0000000000007af9 0x3
.data 0x0000000000007afc 0xe4 obj/system/partitions.o
.data 0x0000000000007be0 0x262 obj/system/pci.o
*fill* 0x0000000000007e42 0x2
.data 0x0000000000007e44 0xba obj/system/cpu.o
*fill* 0x0000000000007efe 0x2
.data 0x0000000000007f00 0xba obj/system/globals.o
*fill* 0x0000000000007fba 0x2
.data 0x0000000000007fbc 0x20c obj/system/memory.o
.data 0x00000000000081c8 0x7d6 obj/system/debug.o
*fill* 0x000000000000899e 0x2
.data 0x00000000000089a0 0xba obj/system/tasks.o
*fill* 0x0000000000008a5a 0x2
.data 0x0000000000008a5c 0x115 obj/system/rtc.o
*fill* 0x0000000000008b71 0x3
.data 0x0000000000008b74 0x30 obj/system/gdt.o
0x0000000000008b74 GDTStart
.data 0x0000000000008ba4 0x1bf obj/video/screen.o
0x0000000000008c5f gCursorY
0x0000000000008c60 gTextColor
0x0000000000008c61 gBackColor
0x0000000000008c62 kMaxLines
0x0000000000008c63 kBytesPerScreen
0x0000000000008d64 . = ALIGN (0x4)
*fill* 0x0000000000008d63 0x1
.bss 0x0000000000008d70 0x69d0
0x0000000000008d70 bss = .
*(.bss)
.bss 0x0000000000008d70 0x60b5 obj/kernel.o
*fill* 0x000000000000ee25 0x3
.bss 0x000000000000ee28 0x51 obj/api/lists.o
*fill* 0x000000000000ee79 0x3
.bss 0x000000000000ee7c 0x51 obj/api/misc.o
*fill* 0x000000000000eecd 0x3
.bss 0x000000000000eed0 0x55 obj/drivers/PS2Controller.o
*fill* 0x000000000000ef25 0x3
.bss 0x000000000000ef28 0xa1 obj/drivers/FAT12.o
*fill* 0x000000000000efc9 0x3
.bss 0x000000000000efcc 0xa1 obj/drivers/ATAController.o
*fill* 0x000000000000f06d 0x3
.bss 0x000000000000f070 0x51 obj/io/serial.o
*fill* 0x000000000000f0c1 0x3
.bss 0x000000000000f0c4 0x51 obj/system/hardware.o
*fill* 0x000000000000f115 0x3
.bss 0x000000000000f118 0xa1 obj/system/interrupts.o
*fill* 0x000000000000f1b9 0x3
.bss 0x000000000000f1bc 0xa1 obj/system/partitions.o
*fill* 0x000000000000f25d 0x3
.bss 0x000000000000f260 0xa1 obj/system/pci.o
*fill* 0x000000000000f301 0x3
.bss 0x000000000000f304 0x51 obj/system/cpu.o
*fill* 0x000000000000f355 0x3
.bss 0x000000000000f358 0x51 obj/system/globals.o
*fill* 0x000000000000f3a9 0x3
.bss 0x000000000000f3ac 0x51 obj/system/memory.o
*fill* 0x000000000000f3fd 0x3
.bss 0x000000000000f400 0x1e1 obj/system/debug.o
*fill* 0x000000000000f5e1 0x3
.bss 0x000000000000f5e4 0x51 obj/system/tasks.o
*fill* 0x000000000000f635 0x3
.bss 0x000000000000f638 0x51 obj/system/rtc.o
*fill* 0x000000000000f689 0x3
.bss 0x000000000000f68c 0xb2 obj/video/screen.o
0x000000000000f740 . = ALIGN (0x4)
*fill* 0x000000000000f73e 0x2
0x000000000000f740 end = .
LOAD obj/kernel.o
LOAD obj/api/lists.o
LOAD obj/api/misc.o
LOAD obj/api/strings.o
LOAD obj/drivers/PS2Controller.o
LOAD obj/drivers/FAT12.o
LOAD obj/drivers/ATAController.o
LOAD obj/io/serial.o
LOAD obj/system/hardware.o
LOAD obj/system/interrupts.o
LOAD obj/system/partitions.o
LOAD obj/system/pci.o
LOAD obj/system/cmos.o
LOAD obj/system/power.o
LOAD obj/system/cpu.o
LOAD obj/system/pic.o
LOAD obj/system/globals.o
LOAD obj/system/memory.o
LOAD obj/system/debug.o
LOAD obj/system/tasks.o
LOAD obj/system/rtc.o
LOAD obj/system/gdt.o
LOAD obj/video/screen.o
OUTPUT(output/kernel.sys binary)
Cross Reference Table
Symbol File
A20Enable obj/system/memory.o
obj/kernel.o
APMDisable obj/system/power.o
APMEnable obj/system/power.o
obj/kernel.o
BCDToDecimal obj/api/misc.o
obj/system/rtc.o
ConvertByteToHexString16 obj/api/strings.o
obj/system/memory.o
ConvertNumberHexToString obj/api/strings.o
obj/video/screen.o
ConvertStringHexToNumber obj/api/strings.o
obj/system/debug.o
ConvertWordToHexString16 obj/api/strings.o
obj/video/screen.o
CriticalError obj/system/interrupts.o
CursorHome obj/video/screen.o
DebugInstacrash obj/system/debug.o
DebugMemoryDetails obj/system/debug.o
DebugMenu obj/system/debug.o
obj/kernel.o
DebugPCIDevices obj/system/debug.o
DebugRAMBrowser obj/system/debug.o
DebugStackTrace obj/system/debug.o
DebugSystemInfo obj/system/debug.o
DebugWaitForEscape obj/system/debug.o
DriverLegacyLoad obj/system/hardware.o
obj/kernel.o
DriverSpaceEnd obj/kernel.o
obj/system/pci.o
obj/system/partitions.o
obj/system/hardware.o
DriverSpaceStart obj/kernel.o
obj/system/pci.o
obj/system/partitions.o
obj/system/hardware.o
GDTStart obj/system/gdt.o
obj/kernel.o
IDTInit obj/system/interrupts.o
obj/kernel.o
ISRInitAll obj/system/interrupts.o
obj/kernel.o
InterruptHandlerSet obj/system/interrupts.o
obj/drivers/ATAController.o
obj/drivers/PS2Controller.o
InterruptUnimplemented obj/system/interrupts.o
KeyGet obj/drivers/PS2Controller.o
obj/system/debug.o
KeyWait obj/drivers/PS2Controller.o
obj/system/debug.o
obj/system/interrupts.o
LMElementAddressGet obj/api/lists.o
obj/system/tasks.o
obj/system/debug.o
obj/system/memory.o
obj/system/pci.o
obj/system/partitions.o
obj/drivers/ATAController.o
obj/drivers/FAT12.o
LMElementCountGet obj/api/lists.o
obj/system/debug.o
obj/system/memory.o
obj/system/pci.o
obj/system/partitions.o
LMElementDelete obj/api/lists.o
obj/system/memory.o
LMElementDuplicate obj/api/lists.o
obj/system/memory.o
LMElementSizeGet obj/api/lists.o
obj/system/memory.o
LMItemAddAtSlot obj/api/lists.o
obj/system/debug.o
LMListInit obj/api/lists.o
obj/system/tasks.o
obj/system/debug.o
obj/system/memory.o
obj/system/pci.o
obj/kernel.o
LMSlotFindFirstFree obj/api/lists.o
obj/system/tasks.o
obj/system/partitions.o
obj/drivers/ATAController.o
LM_Internal_ElementAddressGet obj/api/lists.o
obj/system/tasks.o
MemAllocate obj/system/memory.o
obj/system/tasks.o
obj/system/debug.o
obj/system/pci.o
obj/system/partitions.o
obj/system/interrupts.o
obj/drivers/ATAController.o
obj/drivers/PS2Controller.o
obj/kernel.o
MemAllocateAligned obj/system/memory.o
obj/system/tasks.o
obj/kernel.o
MemCopy obj/system/memory.o
obj/video/screen.o
obj/system/debug.o
obj/system/pci.o
obj/system/interrupts.o
obj/drivers/ATAController.o
obj/drivers/FAT12.o
obj/api/strings.o
obj/api/lists.o
obj/kernel.o
MemFill obj/system/memory.o
obj/video/screen.o
obj/system/tasks.o
obj/api/strings.o
MemInit obj/system/memory.o
obj/kernel.o
MemProbe obj/system/memory.o
obj/kernel.o
MemSearchString obj/system/memory.o
obj/system/pci.o
obj/system/partitions.o
obj/system/hardware.o
MemSwapWordBytes obj/system/memory.o
obj/drivers/ATAController.o
PCICalculateNext obj/system/pci.o
obj/system/debug.o
PCIGetNextFunction obj/system/pci.o
obj/system/debug.o
PCIInitBus obj/system/pci.o
obj/kernel.o
PCILoadDrivers obj/system/pci.o
obj/kernel.o
PCIProbe obj/system/pci.o
obj/kernel.o
PCIReadAll obj/system/pci.o
obj/system/debug.o
PCIReadDWord obj/system/pci.o
obj/drivers/ATAController.o
PICIRQDisable obj/system/pic.o
obj/drivers/PS2Controller.o
PICIRQDisableAll obj/system/pic.o
obj/drivers/PS2Controller.o
obj/kernel.o
PICIRQEnable obj/system/pic.o
obj/drivers/PS2Controller.o
PICIRQEnableAll obj/system/pic.o
obj/drivers/PS2Controller.o
obj/kernel.o
PICInit obj/system/pic.o
obj/kernel.o
PICIntComplete obj/system/pic.o
obj/system/interrupts.o
obj/drivers/ATAController.o
obj/drivers/PS2Controller.o
PITInit obj/system/hardware.o
obj/kernel.o
PartitionEnumerate obj/system/partitions.o
obj/kernel.o
Print16 obj/video/screen.o
obj/system/memory.o
Print32 obj/video/screen.o
obj/system/debug.o
obj/system/interrupts.o
obj/kernel.o
PrintIfConfigBits16 obj/video/screen.o
obj/system/memory.o
obj/kernel.o
PrintIfConfigBits32 obj/video/screen.o
obj/system/rtc.o
obj/system/pci.o
obj/system/partitions.o
obj/drivers/ATAController.o
obj/drivers/FAT12.o
obj/drivers/PS2Controller.o
obj/kernel.o
PrintRAM32 obj/video/screen.o
obj/system/debug.o
obj/system/interrupts.o
PrintRegs16 obj/video/screen.o
PrintRegs32 obj/video/screen.o
obj/system/interrupts.o
obj/drivers/PS2Controller.o
obj/kernel.o
RTCAdjustBCD obj/system/rtc.o
RTCInit obj/system/rtc.o
obj/kernel.o
RTCInterruptHandler obj/system/rtc.o
obj/system/interrupts.o
Random obj/system/hardware.o
Reboot obj/system/hardware.o
obj/system/debug.o
ScreenClear16 obj/video/screen.o
ScreenClear32 obj/video/screen.o
obj/system/debug.o
obj/system/interrupts.o
obj/kernel.o
ScreenScroll16 obj/video/screen.o
ScreenScroll32 obj/video/screen.o
SetSystemAPM obj/api/misc.o
obj/kernel.o
SetSystemCPUID obj/system/cpu.o
obj/kernel.o
StringCharAppend obj/api/strings.o
obj/system/debug.o
StringLength obj/api/strings.o
obj/system/debug.o
obj/system/memory.o
StringTokenBinary obj/api/strings.o
obj/system/interrupts.o
obj/kernel.o
StringTokenDecimal obj/api/strings.o
obj/system/debug.o
obj/system/pci.o
obj/drivers/ATAController.o
obj/drivers/FAT12.o
obj/kernel.o
StringTokenHexadecimal obj/api/strings.o
obj/video/screen.o
obj/system/debug.o
obj/system/pci.o
obj/system/partitions.o
obj/system/interrupts.o
obj/drivers/ATAController.o
obj/kernel.o
StringTokenString obj/api/strings.o
obj/video/screen.o
obj/system/debug.o
obj/system/interrupts.o
obj/drivers/ATAController.o
obj/drivers/FAT12.o
StringTrimRight obj/api/strings.o
obj/drivers/ATAController.o
StringTruncateLeft obj/api/strings.o
obj/system/debug.o
StringTruncateRight obj/api/strings.o
TaskDetermineNext obj/system/tasks.o
TaskInit obj/system/tasks.o
obj/kernel.o
TaskKill obj/system/tasks.o
obj/system/interrupts.o
TaskNew obj/system/tasks.o
obj/kernel.o
TaskSwitch obj/system/tasks.o
obj/system/interrupts.o
TimerWait obj/api/misc.o
obj/drivers/PS2Controller.o
obj/kernel.o
backColor obj/system/memory.o
obj/kernel.o
gBackColor obj/video/screen.o
obj/system/memory.o
obj/kernel.o
gCursorY obj/video/screen.o
obj/system/pci.o
gTextColor obj/video/screen.o
obj/system/memory.o
obj/kernel.o
kBytesPerScreen obj/video/screen.o
obj/kernel.o
kMaxLines obj/video/screen.o
obj/system/debug.o
obj/system/interrupts.o
obj/kernel.o
main obj/kernel.o
textColor obj/system/memory.o
obj/kernel.o
Notice the .fill sections to align the code/data on boundaries. Results in a larger file (on disk)