Home | History | Annotate | Download | only in X64
      1       TITLE   CpuAsm.asm: 
      2 ;------------------------------------------------------------------------------
      3 ;*
      4 ;*   Copyright (c) 2008 - 2013, Intel Corporation. All rights reserved.<BR>
      5 ;*   This program and the accompanying materials                          
      6 ;*   are licensed and made available under the terms and conditions of the BSD License         
      7 ;*   which accompanies this distribution.  The full text of the license may be found at        
      8 ;*   http://opensource.org/licenses/bsd-license.php                                            
      9 ;*                                                                                             
     10 ;*   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     
     11 ;*   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             
     12 ;*   
     13 ;*    CpuAsm.asm
     14 ;*  
     15 ;*   Abstract:
     16 ;*
     17 ;------------------------------------------------------------------------------
     18 
     19     .code
     20 
     21 ;------------------------------------------------------------------------------
     22 ; VOID
     23 ; SetCodeSelector (
     24 ;   UINT16 Selector
     25 ;   );
     26 ;------------------------------------------------------------------------------
     27 SetCodeSelector PROC PUBLIC
     28     sub     rsp, 0x10
     29     lea     rax, setCodeSelectorLongJump
     30     mov     [rsp], rax
     31     mov     [rsp+4], cx
     32     jmp     fword ptr [rsp]
     33 setCodeSelectorLongJump:
     34     add     rsp, 0x10
     35     ret
     36 SetCodeSelector ENDP
     37 
     38 ;------------------------------------------------------------------------------
     39 ; VOID
     40 ; SetDataSelectors (
     41 ;   UINT16 Selector
     42 ;   );
     43 ;------------------------------------------------------------------------------
     44 SetDataSelectors PROC PUBLIC
     45     mov     ss, cx
     46     mov     ds, cx
     47     mov     es, cx
     48     mov     fs, cx
     49     mov     gs, cx
     50     ret
     51 SetDataSelectors ENDP
     52 
     53 END
     54 
     55