Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Liming Gao <liming.gao@intel.com>
		
			
				
	
	
		
			53 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			NASM
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			NASM
		
	
	
	
	
	
| ;------------------------------------------------------------------------------
 | |
| ;*
 | |
| ;*   Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
 | |
| ;*   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.
 | |
| ;*
 | |
| ;*    CpuAsm.nasm
 | |
| ;*
 | |
| ;*   Abstract:
 | |
| ;*
 | |
| ;------------------------------------------------------------------------------
 | |
| 
 | |
|     DEFAULT REL
 | |
|     SECTION .text
 | |
| 
 | |
| ;------------------------------------------------------------------------------
 | |
| ; VOID
 | |
| ; SetCodeSelector (
 | |
| ;   UINT16 Selector
 | |
| ;   );
 | |
| ;------------------------------------------------------------------------------
 | |
| global ASM_PFX(SetCodeSelector)
 | |
| ASM_PFX(SetCodeSelector):
 | |
|     sub     rsp, 0x10
 | |
|     lea     rax, [setCodeSelectorLongJump]
 | |
|     mov     [rsp], rax
 | |
|     mov     [rsp+4], cx
 | |
|     jmp     dword far [rsp]
 | |
| setCodeSelectorLongJump:
 | |
|     add     rsp, 0x10
 | |
|     ret
 | |
| 
 | |
| ;------------------------------------------------------------------------------
 | |
| ; VOID
 | |
| ; SetDataSelectors (
 | |
| ;   UINT16 Selector
 | |
| ;   );
 | |
| ;------------------------------------------------------------------------------
 | |
| global ASM_PFX(SetDataSelectors)
 | |
| ASM_PFX(SetDataSelectors):
 | |
| o16 mov     ss, cx
 | |
| o16 mov     ds, cx
 | |
| o16 mov     es, cx
 | |
| o16 mov     fs, cx
 | |
| o16 mov     gs, cx
 | |
|     ret
 | |
| 
 |