Sei sulla pagina 1di 2

UdA 2

Lezione 2

LE NUOVE ISTRUZIONI
ASSEMBLY PER ISA RECENTI

L’elenco seguente mostra alcune delle nuove istruzioni dell’ISA 80286:


PUSHA Salva tutti i registri (AX, CX, DX, BX, SP, BP, SI, DI) sullo stack
POPA Legge tutti i registri (DI, SI, BP, SP, BX, DX, CX, AX) salvati nello stack
ENTER Predispone lo stack a eseguire una procedura
LEAVE Svuota lo stack all’uscita di una procedura
BOUND Controlla i limiti dei vettori

L’elenco seguente mostra alcune delle nuove istruzioni dell’ISA 80386 a 32 bit:
FS, GS Nuovi registri di segmento
PUSHAD/POPAD Salva e preleva dallo stack tutti i registri estesi
PUSHFD/POPFD Salva e preleva dallo stack il registro dei flag esteso
SHLD/SHRD Trasla i dati a 32 bit a sinistra o a destra
IRETD Ritorno da un interrupt a 32 bit

L’elenco seguente mostra alcune delle nuove istruzioni dell’ISA 80486:


BSWAP Scambia il contenuto di due registri a 16 bit
XADD Scambia e somma
CMPXCHG Confronta e scambia

L’elenco seguente mostra alcune delle nuove istruzioni dell’ISA 80586 (Pentium):
CMPXCHG8B Confronta e scambia 8 byte
CPUID Identifica la CPU

L’elenco seguente mostra alcune delle nuove istruzioni dell’ISA Pentium Pro:
FXSAVE/FXRSTOR Salva/ripristina lo stato dei registri floating point
SYSENTER Chiamata di sistema veloce
SYSEXIT Ritorno da chiamata di sistema veloce

L’elenco seguente mostra alcune delle nuove istruzioni dell’ISA ◀ MMX ▶:

◀ MMX (MultiMedia eXtension) è un ISA formato da 57 nuove istruzioni mirate a velocizzare alcune
operazioni grafi che e di comunicazione. Utilizza un approccio SIMD (Single Instruction Multiple Data)
che permette di eseguire la stessa operazione su 2, 4 o 8 operandi interi contemporaneamente usando
operandi chiamati packet byte formati da 8 operandi da 8 bit oppure packed word formati da 4 ope-
randi da 16 bit, oppure packet double word formati da pacchetti di 2 operandi da 32 bit, oppure un
unico operando a 64 bit detto quad word. Tutti gli operandi vengono elaborati in parallelo garantendo
in tal modo prestazioni di velocità di elaborazione assai elevate. Possiamo per esempio caricare in un
registro 8 diversi operandi a 8 bit (per le variabili di tipo char) e sommare, in un solo ciclo di clock, a
tutti lo stesso valore contemporaneamente. ▶

2 Luigi Lo Russo, Elena Bianchi, Sistemi e reti, Volume 1, Nuova Edizione OPENSCHOOL, © Ulrico Hoepli Editore S.p.A. 2015
UdA 2
Lezione 2

◗◗ Istruzioni di spostamento o assegnazione:


MOVD, MOVQ
◗◗ Istruzioni aritmetiche:
PADD, PADDS, PADDUS, PMADD, PMULH, PMULL, PSUB, PSUBS
◗◗ Istruzioni logiche bitwise:
PAND, PANDN, POR, PXOR

◗◗ Istruzioni bitwise di rotazione/traslazione:


PSLL, PSRA, PSRL
◗◗ Istruzione di confronto:
PCMPEQ, PCMPGT
◗◗ Istruzione di confronto:
PACKSSDW, PACKSSWB, PACKUSWB, PUNPCHK, PUNPCKL

Esistono inoltre molte altre istruzioni legate alle nuove tecnologie architetturali del nuovi pro-
cessori, e tra queste spicca per importanza l’ISA ◀ SSE ▶ del Pentium III.

◀ SSE (Streaming SIMD Extension) è un ISA composto da 70 nuove istruzioni, di cui ben 50 opera-
no in modalità SIMD sui numeri espressi in virgola mobile a singola precisione, accelerando alcune
operazioni effettuate in campo grafi co di tipo tridimensionale e in campo di gestione del suono per
elaborazioni audio. Sono state introdotte nuove istruzioni per gli interi (in particolare, sommatoria di
differenze assolute e calcolo della media) così da velocizzare le funzioni di compensazione e stima di
moto, caratteristiche della codifica MPEG. ▶

In seguito sono state sviluppate nuove ISA per processori di microarchitetture più recenti: tra
esse spicca per importanza la SSE4.2 creata per processori di generazione Nehalem. L’intero
set prevede
47 nuove istruzioni, divise nei seguenti sottogruppi:
◗◗ FPDP (Floating Point Dot Product);
◗◗ FPR (Floating Point Round).

Sono coinvolte nell’ottimizzazione delle scene 2D e 3D.


L’ambito di utilizzo è prevalentemente quello dei videogiochi, insieme a tutti quelli che richie-
dono un uso massiccio dei calcoli in virgola mobile.
Consente inoltre di eseguire operazioni a 128 bit in un solo ciclo di clock velocizzando alcune
tipiche operazioni legate all’utilizzo delle istruzioni SSE.

Luigi Lo Russo, Elena Bianchi, Sistemi e reti, Volume 1, Nuova Edizione OPENSCHOOL, © Ulrico Hoepli Editore S.p.A. 2015 3