Come collegare un byte di un indirizzo di parola

December 6

Come collegare un byte di un indirizzo di parola


Memoria del computer ha due dimensioni: una lunghezza e una larghezza. Un singolo chip di memoria può avere una lunghezza di un milione di celle di memoria (note anche come indirizzi), ciascuno dei quali sono 8 bit o 1 byte, larghezza. Anche se il chip è 1 byte di larghezza, il controller di memoria può accedere diversi byte alla volta. Quando più byte vengono uniti insieme, formano una parola. Una parola è di solito lunga 2, 4 o 8 byte. Se si dispone di un controller di memoria che accede solo indirizzi di parole, è possibile inviare un byte di dati ad esso utilizzando imbottitura.

istruzione

1 Scopri quanto tempo ogni parola è sul controller di memoria. Potrebbe essere necessario guardare questa figura nella scheda tecnica che corrisponde al controller. Supponiamo che il vostro controller di memoria usa parole di 4 byte-lunghi.

2 Sottrarre il numero di byte per parola da 1. Questo è il numero di byte di riempimento è necessario aggiungere ai propri dati prima di collegarlo al l'indirizzo del canale. Continuando con la parola assunto 4 byte, è necessario aggiungere altri 3 byte di padding al byte di dati.

3 Aggiungere byte di riempimento al byte di dati che si desidera collegare all'indirizzo di parola. Utilizzando il codice binario, ogni byte dovrebbe essere 00000000. Ad esempio, se il byte ha il valore binario 11111111, si dovrebbe aggiungere 3 byte composto da otto zeri alla fine di tali dati e ottenere questa parola di 4 byte in binario:

11111111 00000000 00000000 00000000

4 Spostare la parola 4 byte per l'indirizzo desiderato utilizzando il linguaggio di programmazione a scelta. Per esempio, in linguaggio assembly x86, è possibile spostare i dati per l'indirizzo "ADDR" scrivendo la dichiarazione di seguito elencati. Si noti che gli spazi tra byte sono stati rimossi e le lettere "xB" è stato aggiunto ai dati. Questo dice l'assemblatore che è un numero binario.

movl ADDR, 11111111000000000000000000000000xB