Domanda

Sono certa familiarità con la x87 istruzioni per manipolare i numeri in virgola mobile a 86 di assemblaggio . Tuttavia, ho letto da qualche parte che questi sono stati usati raramente. (E non sono stati ammessi nel driver di Windows a 64 bit) [ 1 ]

Se questo è il caso, che cosa istruzioni dovrei usare? Ho visto qualcosa su SSE, ma se non mi sbaglio, sono stati aggiunti più di recente tali istruzioni e non sarà disponibile sul chip più anziani. (Come il Pentium II, ecc.)

Quali istruzioni dovrebbe I utilizzerò?

È stato utile?

Soluzione

Se siete disposti a dimenticare la compatibilità all'indietro, SSE è la strada da percorrere. Ha un set di istruzioni e il supporto vettore più ricco. Se si vuole essere ottimizzato per qualsiasi processore è in esecuzione, si dovrebbe provare a scrivere in un linguaggio di alto livello e la compilazione con ICC, che controlla il processore è attualmente in esecuzione e il codice esegue ottimizzata per questo.

Alla fine della giornata dipende dalle attese degli utenti del software.

Altri suggerimenti

Se avete bisogno di essere retrocompatibile, dovrete usare x87 istruzioni. In caso contrario, come dice Nathan Fellman, SSE # istruzioni possono essere la strada da percorrere, anche perché il codice per loro è un po 'più facile da scrivere (che usano un modello di registro normale, mentre x87 utilizza una pila).

Detto questo, ci sono diversi motivi per cui si potrebbe desiderare di utilizzare il codice x87 (x87 o la miscelazione / code SSE):

(1) offerte x87 una precisione maggiore, cioè virgola mobile computazione 80-bit. (Sia galleggianti x87 / SSE offerta a 32 bit e 64-bit). Questo è potenzialmente un problema per esempio codice scientifica che potrebbe essere necessario la precisione in più.

(2) offerte x87 alcune operazioni che non sono coperti dai set di istruzioni SSE #, vale a dire le istruzioni per le operazioni di triogonometric (seno, coseno, ...) e logaritmi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top