mirror of https://github.com/acidanthera/audk.git
65 lines
1.8 KiB
NASM
65 lines
1.8 KiB
NASM
|
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
|