Si sta spostando un valore a 64 bit dalla memoria nel registro rax. Il valore viene letto dall'indirizzo ff4053c0h. qword ptr è un suggerimento per l'assemblatore di creare un codice operativo di spostamento (codice macchina) usando un indirizzo costante a 64 bit. Il valore fornito è un valore a 32 bit (8 cifre esadecimali => 8 volte una cifra esadecimale/lettera => 8 * 4 bit => 32 bit).
Ci sono codici operativi di spostamento che supportano operazioni a 32 bit ma (molto probabilmente controllano le specifiche per la CPU/Modalità) non per caricare la memoria in un registro a 64 bit. Quindi qword è necessario per garantire all'assembler di voler veramente esprimere un indirizzo a 64 bit.
Per il tuo commento sull'indirizzo che punta alla memoria indefinita (vedi i commenti per la risposta accettata), capisci che al giorno d'oggi ogni processo ha una tabella di memoria virtuale assegnata. La memoria virtuale fondamentalmente mappa un indirizzo logico in un indirizzo nella memoria reale. Impedisce ai processi di vedere e modificare la memoria che non appartiene al processo, fornendo una grande stabilità a un sistema in esecuzione.
Avendo due processi che condividono una porzione di memoria, è possibile che ogni singolo processo visualizzi la stessa memoria fisica in indirizzi logici diversi. Il sistema operativo decide come appare la memoria virtuale di ogni processo.
La mappatura viene fornita su un livello per pagina (ad esempio pagina = 4KB) e il processore esegue internamente la mappatura effettiva.
Questo concetto è molto vero per mappare i file in memoria e condividere la memoria tra diversi processi. In questo modo è possibile mappare un file da 2 GB in memoria e utilizzare contemporaneamente 10 processi con lo stesso file mappato mentre viene consumata solo (al massimo) 2 GB di memoria effettiva. È il modo in cui il file io-caching viene eseguito principalmente a livello di sistema operativo.
fonte
2017-11-11 07:13:38
Si riferisce alla posizione di indirizzo indicata da 'ff4053c0h' come una parola quadrupla (64 bit). Qualunque sia il valore a 64 bit a quell'indirizzo verrà caricato in 'rax'. Se l'indirizzo non è valido, allora c'è un problema. Sei sicuro che non sia valido? – lurker