;------------------------------------------------------------------------------ ;\r
-; Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>\r
+; Copyright (c) 2015 - 2016, Intel Corporation. All rights reserved.<BR>\r
; This program and the accompanying materials\r
; are licensed and made available under the terms and conditions of the BSD License\r
; which accompanies this distribution. The full text of the license may be found at\r
mov si, BufferStartLocation\r
mov ebx, [si]\r
\r
- mov di, PmodeOffsetLocation\r
- mov eax, [di]\r
+ mov si, PmodeOffsetLocation\r
+ mov eax, [si]\r
+ mov si, CodeSegmentLocation\r
+ mov edx, [si]\r
mov di, ax\r
- sub di, 06h\r
+ sub di, 02h\r
+ mov [di], dx\r
+ sub di, 04h\r
add eax, ebx\r
mov [di],eax\r
\r
+ mov si, DataSegmentLocation\r
+ mov edx, [si]\r
+\r
mov si, GdtrLocation\r
o32 lgdt [cs:si]\r
\r
or eax, 000000003h ;Set PE bit (bit #0) & MP\r
mov cr0, eax\r
\r
- jmp PROTECT_MODE_CS:strict dword 0 ; far jump to protected mode\r
+ jmp 0:strict dword 0 ; far jump to protected mode\r
BITS 32\r
Flat32Start: ; protected mode entry point\r
- mov ax, PROTECT_MODE_DS\r
- mov ds, ax\r
- mov es, ax\r
- mov fs, ax\r
- mov gs, ax\r
- mov ss, ax\r
+ mov ds, dx\r
+ mov es, dx\r
+ mov fs, dx\r
+ mov gs, dx\r
+ mov ss, dx\r
\r
mov esi, ebx\r
mov edi, esi\r