21,458
社区成员
发帖
与我相关
我的任务
分享
;建立程序堆栈段描述符
mov ecx,[edi+0x0c] ;4KB的倍率
mov ebx,0x000fffff ;@1
sub ebx,ecx ;得到段界限;@2
mov eax,4096 ;@3
mul dword [edi+0x0c] ;@4
mov ecx,eax ;准备为堆栈分配内存 ;@5
call sys_routine_seg_sel:allocate_memory
add eax,ecx ;得到堆栈的高端物理地址 ;@6
mov ecx,0x00c09600 ;4KB粒度的堆栈段描述符 ; @7
call sys_routine_seg_sel:make_seg_descriptor ;@8
call sys_routine_seg_sel:set_up_gdt_descriptor
mov [edi+0x08],cx