Sincronizza Indice |
Scarica il progetto |
Testo dell'articolo |
Stampa l'articolo |
I processori della maggior parte di PC sono del modello Intel x86.
Infatti i moderni computer rispettano gli stessi modelli architetturali
dei loro predecessori.
Una differenza sostanziale tra le due architetture è la modalità di memorizzazione dei dati in memoria: le piattaforme Intel infatti memorizzano i dati in una maniera detta Little-Endian (detta talvolta Little-Ending o Little-End In), mentre le piattaforme Motorola trattano i dati secondo il metodo Big-Endian (detto anche Big-Ending o Big End In). La differenza fondamentale tra le due modalità è l'ordine di memorizzazione dei dati. Il formato Little-Endian memorizza i dati a coppie ordinate
ma in posizione invertita. Ciò significa che i due bytes meno significativi
sono memorizzati per primi, mentre i due bytes con valori più significativi
sono memorizzati per ultimi. Il formato Big-Endian memorizzai i dati in maniera ordinata.
I due bytes più significativi sono memorizzati per primi e quelli
meno significativi sono memorizzati per ultimi. Lo stesso numero esadecimale
0x12345678 nelle piattaforme big-endian è memorizzato nei
bytes Pertanto quando si utilizzano diretti accessi alla memoria, quale la funzione API CopyMemory (RtlMoveMemory), è importante ricordare che per estrarre i bytes contenuti in un numero long adoperando gli accessi alla memoria, è necessario invertire le coppie di dati per ottenere il numero originale.
|
Alcune piattaforme, quali le MIPS RISC o le DEC Alpha o le Sparc permettono l'utilizzo di entrambe le modalità Little-Endian e Big-Endian. Windows NT in ogni caso, se viene eseguito su una di queste macchine, lavora sempre nel formato Little-Endian, ignorando l'impostazione predefinita della macchina. Fibia
FBI
|