TITLE EnterDxeCore.asm: Assembly code for the entering DxeCore | |
;------------------------------------------------------------------------------ | |
;* | |
;* Copyright 2006, Intel Corporation | |
;* All rights reserved. This program and the accompanying materials | |
;* are licensed and made available under the terms and conditions of the BSD License | |
;* which accompanies this distribution. The full text of the license may be found at | |
;* http://opensource.org/licenses/bsd-license.php | |
;* | |
;* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, | |
;* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. | |
;* | |
;* EnterDxeCore.asm | |
;* | |
;* Abstract: | |
;* | |
;------------------------------------------------------------------------------ | |
.686p | |
.model flat | |
.code | |
.stack | |
.MMX | |
.XMM | |
; | |
; VOID | |
; EnterDxeMain ( | |
; IN VOID *StackTop, | |
; IN VOID *DxeCoreEntryPoint, | |
; IN VOID *Hob, | |
; IN VOID *PageTable | |
; ) | |
; | |
EnterDxeMain PROC C \ | |
StackTop:DWORD, \ | |
DxeCoreEntryPoint:DWORD, \ | |
Hob:DWORD, \ | |
PageTable:DWORD | |
mov eax, PageTable | |
; mov cr3, eax ; load page table | |
; mov eax, cr4 | |
; bts eax, 4 ; enable CR4.PSE | |
; mov cr4, eax | |
; mov eax, cr0 | |
; bts eax, 31 ; enable CR0.PG | |
; mov cr0, eax | |
mov ecx, DxeCoreEntryPoint | |
mov eax, StackTop | |
mov esp, eax | |
mov edx, Hob | |
push edx | |
push 0 | |
jmp ecx | |
; should never get here | |
jmp $ | |
ret | |
EnterDxeMain ENDP | |
END |