# MEMOMY ## Pagination To activate pagination you must put the physic [pd](./memory/page_directory.md) address in the cr3 register and 0x80000000 in the cr0 register. Now the [MMU](./memory/mmu.md) will translate your address ### Our setup Cause create all [pt](./memory/page_table.md) will cost 3MB (768 * 1024 * 4, 768: cause is our heap limite, 1024: cause each pt contains 1024 entry and 4: cause size of pte is 4byte) we decided to create it on the heap and dynamically. So the first pt of the pd (pd[0]) will contain a default_page_table (or heap_pt). Each page create by each the heap_pt will be a pt added to the pd. ![](./assets/memory/heap_map.webp) ### Page Directory |Name|Addresss| |----|--------| |0|left empty so read or write on NULL triggers an interrupt| |1-767|user process allocations| |768|kernel code and stack| |769-1020|kernel allocations| |1021|VBE screen| |1022|frame allocator variables| |1023|multiboot|