da
fairyvilje » 23 apr 2016, 12:40
Cooomunque i dati che un registro tiene sono comunemente chiamati WORD in un sistema. Se hai un comune processore 80x86 hai tre set di registri diversi sulla base della modalità in uso:
16 bit, modaltà reale- Registri di uso generico ax bx cx dx a 16 bit accessibili nella parte alta ah bh ch dh e bassa al bl cl dl di 8 e 8 bit.
- Registri speciali per indici di array si di a 16 bit e puntatore del codice ip sempre a 16 bit.
- Registri segmento ss ds cs es a 16 bit
- Registri di controllo cr0 se non erro e forse anche altri.
32 bit, modalità protettaTutti i registri di uso generico, gli indirizzi di array e i registri di controllo vengono convertiti nelle versioni a 32 bit includendo una "e" ad inizio nome. Vengono inoltre aggiunti dei registri segmento
fs e
gs supplementari. I set di istruzioni estese MMX, SSE e compagnia sonante introducono ulteriori registri di 64 e 128 bit se non erro, spesso mappati sui registri di uso generico. I registri di controllo diventano di più, e nascono registri speciali per la tabella della paginazione, la segmentazione, la gestione dei processi hardware ed il debug del codice.
64 bit, long modeTutti i registri della modalità protetta di uso generico, gli indirizzi di array e i registri di controllo vengono convertiti nelle versioni a 64 bit includendo una "r" ad inizio nome. I registri di uso generico vengono espansi in numero. Non mi addentro perché le modifiche strutturali nell'architettura sono troppe e troppo lunghe da descrivere.
Questo senza contare le numerose modalità ibride a cui un processore può lavorare, come la virtual mode, la unreal mode e via dicendo. E sicuramente avendo dimenticato roba in giro

. Andando a memoria è abbastanza normale, le architetture 80x86 sono piene di registri.
Quindi, in breve, in base alla modalità avrai registri di tipo diverso con dimensione diversa

.