2011-03-14 11 views

Respuesta

6

Los registros son el almacenamiento interno del procesador. No tienen direcciones de memoria, porque no residen en la memoria. Los identifica por sus nombres: EAX, por ejemplo.

Dicho esto, los registros mapeados en memoria existen, pero en cualquier procesador moderno pertenecen a otros dispositivos, nunca a la CPU. Se les asignan direcciones de memoria "falsas" para mayor comodidad. Ver memory-mapped I/O.

+0

Me gustaría añadir que tampoco están mapeados en la memoria RAM. Muchos dispositivos de hardware tienen registros que tienen "direcciones" ya que hay mapeo en marcha. Lo único que hay aquí es que x86 no expone estos registros haciéndolos mapeables. –

+0

¡Buen punto! y algunos más caracteres – slezica

+0

@ MahmoudAl-Qudsi: ¿Lo mismo es cierto para la versión de 64 bits de la arquitectura? – user2284570

4

Los registros son componentes eléctricos físicos dentro de los circuitos de la CPU. No están en la RAM, por lo que no tienen dirección. Para acceder a sus contenidos, utiliza la instrucción mov.

+0

ok muchas gracias por estas respuestas – jerome

+1

'Los registros son componentes eléctricos físicos dentro de los circuitos de la CPU. Lo mismo es cierto para ʀᴀᴍ en el caso de ꜱᴏᴄ. – user2284570

7

Ha habido arquitecturas donde se usaban direcciones bajas para designar registros de CPU, como la serie de computadoras Univac 1100.

http://en.wikipedia.org/wiki/UNIVAC_1100/2200_series

hardware x86 actual no funciona de esa manera, por lo que no se puede obtener la dirección del registro EAX - simplemente no tiene uno.

+0

Algunos microcontroladores todavía tienen registros mapeados en memoria, por ejemplo, AVR (RISC de 8 bits con 32 registros GP): http://www.avr-tutorials.com/general/avr-memory-map. –

Cuestiones relacionadas