Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

46 lines
1.2 KiB

subttl emfinit.asm - Emulator initialization and FINIT instruction
page
;*******************************************************************************
;emfinit.asm - Emulator initialization and FINIT instruction
;
; Microsoft Confidential
;
; Copyright (c) Microsoft Corporation 1991
; All Rights Reserved
;
;Revision History:
;
; [] 09/05/91 TP Initial 32-bit version.
;
;*******************************************************************************
EM_ENTRY eEmulatorInit
EmulatorInit:
EM_ENTRY eFINIT
eFINIT:
mov esi,BEGstk
mov EMSEG:[CURstk],INITstk
mov ecx,Numlev
xor eax,eax
EmInitLoop:
mov EMSEG:[esi].ExpSgn,bTAG_EMPTY ;Exponent and sign are zero
mov EMSEG:[esi].lManHi,eax
mov EMSEG:[esi].lManLo,eax
add esi, Reg87Len
loop EmInitLoop
mov EMSEG:[StatusWord],ax ; clear status word
mov [esp+4].OldStatus,ax ; clear saved status word.
mov EMSEG:[PrevCodeOff],eax
mov EMSEG:[PrevDataOff],eax
mov EMSEG:[LongControlWord],InitControlWord
mov eax,offset Round64near
mov EMSEG:[RoundMode],eax ;Address of round routine
mov EMSEG:[TransRound],eax ;Address of round routine
mov EMSEG:[SavedRoundMode],eax
mov EMSEG:[ZeroVector],offset SaveResult
mov EMSEG:[Einstall], 1
ret