INFORMAZIONI: Funzionamento di Windows gestisce i calcoli a virgola mobile

Traduzione articoli Traduzione articoli
Identificativo articolo: 102555 - Visualizza i prodotti a cui si riferisce l?articolo.
Questo articolo Ŕ stato archiviato. L?articolo, quindi, viene offerto ?cosý come Ŕ? e non verrÓ pi¨ aggiornato.
Espandi tutto | Chiudi tutto

In questa pagina

Sommario

Tutte le piattaforme Microsoft Windows forniscono applicazioni Win32 un ambiente a virgola mobile comune, ma si differenziano in supporto per driver di periferica e relativo supporto per le applicazioni Win16, POSIX (Portable Operating System Interface), DOS e OS/2.

Questo articolo viene descritto come ciascuna di queste piattaforme fornisce supporto a virgola mobile per le applicazioni e ai driver di periferica.

Informazioni

In questa sezione funzionalitÓ in virgola mobile in Windows NT, Windows 2000 e suoi successori sono innanzitutto descritte e viene descritto lo stesso in Windows 95, Windows 98, Windows 98 Seconda edizione e sistemi basati su Windows Millennium Edition (Me). I membri di ogni gruppo sono simili supportate a virgola mobile tra loro, ma i due gruppi differiscono tra loro causa delle differenze dell'architettura di base.

Windows NT e suoi successori

Applicazioni Win32

Ogni thread in un'applicazione Win32 dispone di un proprio stato di esecuzione che include i registri di utilizzo generali e i registri a virgola mobile. Di conseguenza, l'esecuzione a virgola mobile e la gestione delle eccezioni sono controllati in base al thread. Ci˛ consente di singoli thread in un processo per regolare il comportamento del processore utilizzare arrotondamento specializzate o controllo di precisione e la gestione delle eccezioni a virgola mobile.

Le eccezioni a virgola mobile vengono gestite dall'eccezione Win32 strutturata (SEH) meccanismo incorporato nel kernel di Win32 di gestione. Quando un thread genera un'eccezione a virgola mobile, il meccanismo SEH Cerca un gestore di eccezioni registrato dal thread per gestire l'eccezione. Se il thread non viene gestito l'eccezione, il processo che lo possiede Ŕ chiuso.

Windows NT e suoi successori supportano completo a virgola mobile applicazioni Win32, anche su processori Intel x 86 privi di supporto a virgola mobile. Emulazione viene fornito dal kernel di Win32 per i computer che non dispongono di hardware della virgola mobile. Di conseguenza, i compilatori non sono necessario fornire i propri emulazione a virgola mobile.

Lingue potrebbero essere in librerie di runtime o sistemi di runtime che forniscono all'impostazione predefinita i gestori di eccezioni a virgola mobile. Ad esempio, libreria di runtime di Microsoft Visual c ++ fornisce la gestione di eccezioni a virgola mobile predefinita e include funzioni, ad esempio _controlfp per l'individuazione e regolazione dell'hardware a virgola mobile arrotondamento, controllo e precisione e gestisce il comportamento di eccezione.

Applicazioni Win16

Applicazioni Win16 vengono compilate in genere per i record di correzione nel codice oggetto che contengono istruzioni a virgola mobile e chiamate a 16 bit a virgola mobile, l'emulatore Win87em. Se il processore del computer supporta le istruzioni a virgola mobile o se Ŕ presente un coprocessore, il caricatore risolve le correzioni per le istruzioni a virgola mobile e verranno eseguite le istruzioni visualizzate. Se non viene rilevato hardware della virgola mobile, il caricatore risolve le correzioni per le chiamate a Win87em e verrÓ eseguito l'emulatore.

Win87em non di intercettare le istruzioni a virgola mobile che vengono eseguite le applicazioni viene eseguito solo quando viene chiamato in modo esplicito. Pertanto, assicurarsi che le applicazioni di Win16 vengono compilate per il supporto emulazione, che indicherÓ al linker di inserire i record di correzione nell'eseguibile.

Windows NT su computer basati su RISC utilizzare il codice di emulatore di Windows NT Intel x 86 processore per eseguire le applicazioni Win16. Windows NT 3.5 e Windows NT 3.51 includere emulatori 80286 e 80287; Windows NT 4.0 include un emulatore i486. Le applicazioni di Win16 vengono sempre eseguite come se sono presenti il coprocessors a virgola mobile Intel. Win87em di conseguenza, non fornisce l'emulazione dei calcoli in virgola mobile su computer RISC.

Driver di periferica

Driver in modalitÓ kernel per Windows 2000 e suoi successori possibile utilizzare istruzioni a virgola mobile IRQL Ŕ minore o uguale a DISPATCH_LEVEL, ma Ŕ necessario conservare in modo esplicito lo stato a virgola mobile del processore in modo che il contesto del chiamante a virgola mobile non venga modificato. Funzioni del driver devono chiamare KeSaveFloatingPointState prima di eseguire operazioni a virgola mobile e devono chiamare KeRestoreFloatingPointState prima di restituire al chiamante. Queste funzioni sono documentate in Windows 2000 Driver Development Kit (DDK).

Driver Windows NT 3.51 e 4.0 di Windows in modalitÓ kernel Impossibile utilizzare istruzioni a virgola mobile, opzioni dello stack modalitÓ kernel non mantengono i registri a virgola mobile. Se un driver modalitÓ kernel Ŕ l'utilizzo di qualsiasi istruzione a virgola mobile, ci˛ pu˛ comportare il danneggiamento di stato numerico dell'applicazione di modalitÓ utente o un errore del sistema (blocco).

Applicazioni MS-DOS

Windows NT e suoi successori Intel x 86 Ŕ possibile eseguire le applicazioni MS-DOS in modalitÓ di-8086 virtuale del Intel x 86 processore. Applicazioni MS-DOS possono accedere all'hardware a virgola mobile come in MS-DOS. Se nessun hardware a virgola mobile Ŕ presente, emulazione non Ŕ disponibile per l'applicazione. Di conseguenza, l'applicazione deve fornire propri emulazione.

In Windows NT nei computer basati su RISC viene utilizzato codice di emulazione x 86 Intel incorporate. Windows NT 3.5 e Windows NT 3.51 includere emulatori 80286 e 80287; Windows NT 4.0 include un emulatore i486. Le applicazioni di MS-DOS vengono sempre eseguite come se sono presenti il coprocessors a virgola mobile Intel.

Applicazioni POSIX

Come con le applicazioni Win32, applicazioni POSIX possono presupporre che il supporto completo a virgola mobile sempre presente.

Il POSIX standard non definisce un modo per attivare le eccezioni a virgola mobile. Pertanto, le applicazioni di POSIX che utilizzano le eccezioni a virgola mobile devono basarsi sulle funzionalitÓ specifiche del sistema. Eccezioni Mobile utilizzando la funzione _controlfp possibile attivare un'applicazione POSIX compilata con Microsoft Visual c ++. Le eccezioni a virgola mobile possono quindi essere intercettate da SIGFPE oppure, se l'applicazione deve eseguire pi¨ di intercettare l'eccezione, dalla funzione fpieee_flt .

Applicazioni di OS/2

Supporto a virgola mobile in questo sottosistema corrisponde a quello di OS/2: se Mobile-hardware non Ŕ installato, l'applicazione di OS/2 deve fornire il proprio tipo di emulazione. Il sottosistema OS/2 Ŕ supportato solo sulle versioni x 86 a Intel di Windows NT e suoi successori.

Windows 95, Windows 98, Windows 98 Seconda edizione e Windows Me

Applicazioni Win32

Il Windows 95 a piattaforme di Windows ME Ŕ disponibile dello stesso supporto a virgola mobile per le applicazioni Win32 come le piattaforme Windows NT e Windows 2000.

Applicazioni Win16

Le applicazioni Win16 vengono in genere compilate per includere i record di correzione nel proprio codice oggetto che contengono istruzioni a virgola mobile e chiamate a 16 bit a virgola mobile, l'emulatore Win87em. Se il processore del computer supporta le istruzioni a virgola mobile o se Ŕ presente un coprocessore, il caricatore risolve le correzioni per le istruzioni a virgola mobile e verrÓ eseguiti. Se non viene rilevato hardware della virgola mobile, il caricatore risolve le correzioni per le chiamate a Win87em e verrÓ eseguito l'emulatore.

Win87em non di intercettare le istruzioni a virgola mobile che vengono eseguite le applicazioni viene eseguito solo quando viene chiamato in modo esplicito. Di conseguenza, compilare le applicazioni Win16 supportano l'emulazione che indicherÓ al linker di inserire i record di correzione nell'eseguibile.

Driver di periferica

Driver di periferica virtuale (VxDs) pu˛ utilizzare istruzioni a virgola mobile ma necessario utilizzare l'interfaccia di periferica virtuale di coprocessore Math per salvare e ripristinare lo stato del coprocessore in virgola mobile. Il VxD necessario registrare anche un gestore eccezioni per le eccezioni a virgola mobile.

Applicazioni MS-DOS

Windows 95 a Windows Me piattaforme eseguire applicazioni di MS-DOS in modalitÓ 8086 virtuale del Intel x 86 processore. Applicazioni MS-DOS possono accedere all'hardware a virgola mobile come in MS-DOS. Se nessun hardware a virgola mobile Ŕ presente, emulazione non Ŕ disponibile per l'applicazione. Di conseguenza, l'applicazione specificare il proprio emulazione, come in genere viene eseguita dalla libreria di runtime dell'applicazione MS-DOS.

I prodotti di terze parti citati in questo articolo sono forniti da produttori indipendenti. Microsoft non rilascia alcuna garanzia, implicita o di altra natura, relativa alle prestazioni o all'affidabilitÓ di questi prodotti.

ProprietÓ

Identificativo articolo: 102555 - Ultima modifica: sabato 1 marzo 2014 - Revisione: 2.3
Le informazioni in questo articolo si applicano a:
  • Microsoft Win32 Application Programming Interfaceáalle seguenti piattaforme
    • Microsoft Windows 95
    • Microsoft Windows 98 Standard Edition
    • Microsoft Windows Millennium Edition
    • Microsoft Windows NT 4.0
    • the operating system: Microsoft Windows 2000
    • the operating system: Microsoft Windows XP
Chiavi:á
kbnosurvey kbarchive kbmt kbfloatpoint kbinfo kbkernbase kbprogramming KB102555 KbMtit
Traduzione automatica articoli
Il presente articolo Ŕ stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non Ŕ sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, pi¨ o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non Ŕ la sua. Microsoft non Ŕ responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 102555
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com