From f13d09f3362b9404db5230fd807a6238f1c861ac Mon Sep 17 00:00:00 2001 From: ridethepig Date: Fri, 4 Nov 2022 12:33:43 +0800 Subject: [PATCH] lab5 report --- 2020301918-李懋良-试点班第5个报告.docx | Bin 0 -> 74981 bytes kern/main.c | 12 ++++-------- 2 files changed, 4 insertions(+), 8 deletions(-) create mode 100644 2020301918-李懋良-试点班第5个报告.docx diff --git a/2020301918-李懋良-试点班第5个报告.docx b/2020301918-李懋良-试点班第5个报告.docx new file mode 100644 index 0000000000000000000000000000000000000000..e9c9bafc20a5f1979c1eb8911f09ba6f6f5ca76d GIT binary patch literal 74981 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 == PT_LOAD) { u32 vpage_fst = phdr->p_va & (~0xfff); // clear low 12 bit, start of the first pg u32 vpage_lst = (phdr->p_va + phdr->p_memsz - 1) & (~0xfff); // start of the last pg -// in fact, we allocate 4k aligned vpage to every segment; its ok because elf32 segment align is 0x1000 + // in fact, we allocate 4k aligned vpage to every segment; + // its ok because elf32 segment align is 0x1000 u32 page_num = ((vpage_lst - vpage_fst) >> 12) + 1; phyaddr_t newpage = 0; // useless initialization for (int j = 0; j < page_num; ++ j) { @@ -123,12 +123,8 @@ void kernel_main(void) for (int i = 0; i < 8; ++ i) { lml_map(p_proc->pcb.cr3, (3*GB - (8-i)*PGSIZE), ustack_low + i*PGSIZE, PTE_P | PTE_W | PTE_U); } - p_proc->pcb.user_regs.esp = 3*GB; - // p_proc->pcb.user_regs.esp -= 4; - // uintptr_t* ustack_top = (uintptr_t*)K_PHY2LIN(ustack_high + PGSIZE); - // ustack_top --; - // *ustack_top = ehdr->e_entry; - p_proc->pcb.user_regs.eip = ehdr->e_entry; + p_proc->pcb.user_regs.esp = 3*GB; // high to low stack + p_proc->pcb.user_regs.eip = ehdr->e_entry; // refer to restart: // 初始化用户寄存器 p_proc->pcb.user_regs.eflags = 0x1202; /* IF=1, IOPL=1 */