elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  Pregunta simple sobre registros
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Pregunta simple sobre registros  (Leído 6,812 veces)
zonahurbana

Desconectado Desconectado

Mensajes: 178

RS, JC.


Ver Perfil WWW
Pregunta simple sobre registros
« en: 19 Abril 2014, 17:55 pm »

Acerca de los registros de 16 bits de "uso general": AX, BX, CX, DX
Y también los demás, como: CS, DS, SS, ES...

¿Existen en general y son usados por cada programa que se ejecuta? ¿O cada programa tiene una sección de memoria reservada sólo para sí mismo y se le asignan sus correspondientes registros?

Uso Windows 7 y usando DosBox puedo acceder a la aplicación debug.exe pero no entiendo qué es lo que sucede cuando modifico los valores de estos registros... quiere decir que si estoy usando un programa el programa modificará los valores de los punteros para ejecutar su código correspondiente? y por tanto habría error si ejecuto un programa y simultáneamente cambio los valores de los segmentos...

Y si cada programa tiene su respectiva segmentación, entonces qué es lo que modifico con el debug? los registros asignados para el programa "debug"?

La verdad me resulta muy confuso. Por favor espero que puedan ayudarme a entender mejor este tema.


En línea

Nunca dejar de aprender es importante, más allá del ritmo que se siga ...
Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.958


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Pregunta simple sobre registros
« Respuesta #1 en: 19 Abril 2014, 20:10 pm »

Cada procesador fisicamente tiene unos registros y nada mas pero estos se pueden guardar en memoria y restaurar posteriorment, asi se logra multitasking con un solo procesador por ejemplo.

Modificas los registros del programa que el depurador DEBUG este depurando (si ejecutas debug app125.exe seran los de app125.exe, en el caso de que no selecciones ningun programa en particular hay solo memoria sin inicializar para que vos pongas lo que quieras) y no al propio DEBUG. Y si, si en BX habia un puntero, lo modificas y el programa despues intenta acceder a una direccion invalida habra una excepcion no controlada ...


En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
zonahurbana

Desconectado Desconectado

Mensajes: 178

RS, JC.


Ver Perfil WWW
Re: Pregunta simple sobre registros
« Respuesta #2 en: 20 Abril 2014, 02:09 am »

Gracias por responder.
Ahora voy a escribir en modo afirmativo y usted me dice si entendí bien, por favor  :rolleyes:

Físicamente existen estos registros y son únicos:
- AX, BX, CX, DX
- CS, DS, ES, SS
- SI, DI

En la actualidad, dado que se ejecutan muchas tareas simultáneamente es necesario simular que existen estos registros para cada programa, pero realmente es memoria asignada.

Así cometa errores en mis prácticas básicas sobre los comandos U, R, D, E que escribo en el debug jamás se verán afectados los programas que tengo en ejecución ya que nunca especifico un programa al que aplicar el debug, simplemente uso esos valores. Por esa razón siempre aparecen inicializados con ceros cuando ejecuto el debug (la gran mayoría pero no todos).

MOV, INC son mnemotécnicos que pasan a ser lenguaje máquina a través del Assembler, pero el Assembler no es propiamente un lenguaje de programación.

¿U, R, D, E son instrucciones de procesador?
En línea

Nunca dejar de aprender es importante, más allá del ritmo que se siga ...
Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.958


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Pregunta simple sobre registros
« Respuesta #3 en: 20 Abril 2014, 03:05 am »

Si, los registros son unicos en cada procesador (aunque hay mas que esos que enumeraste).

Si, no podes interferir en otros procesos tan facilmente.

Assembly es un lenguaje de programacion de bajo nivel, assembler es el programa que ensambla el codigo de assembly y lo transforma en codigo maquina.

Esos son comandos del depurador DEBUG.
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
zonahurbana

Desconectado Desconectado

Mensajes: 178

RS, JC.


Ver Perfil WWW
Re: Pregunta simple sobre registros
« Respuesta #4 en: 21 Abril 2014, 01:59 am »

En la actualidad, dado que se ejecutan muchas tareas simultáneamente es necesario simular que existen estos registros para cada programa, pero realmente es memoria asignada.

Los registros son memorias de poca capacidad a los que se puede acceder mucho más rápido que a la memoria misma, ¿verdad?
¿Si es cierto que son simulados por memoria quiere decir que hay una zona "especial" de la memoria a la que se puede acceder más rápido? ¿Y los registros únicos (no simulados) para qué sería usado entonces, para el SO?

Gracias por responder nuevamente.
En línea

Nunca dejar de aprender es importante, más allá del ritmo que se siga ...
Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.958


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Pregunta simple sobre registros
« Respuesta #5 en: 21 Abril 2014, 03:04 am »

http://en.wikipedia.org/wiki/Processor_register

Si.

No, se trabaja siempre con los registros, solo que para poder ir cambiando de tarea se guarda en memoria y despues se restaura el estado de los mismo (los valores que contenian antes de cambiar de tarea).
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Vaagish


Desconectado Desconectado

Mensajes: 875



Ver Perfil
Re: Pregunta simple sobre registros
« Respuesta #6 en: 24 Abril 2014, 05:22 am »

Citar
¿Y los registros únicos (no simulados) para qué sería usado entonces, para el SO?

En realidad, no hay "no simulados", se guarda el estado de los registros, se cargan los registros de otra tarea, el procesador hace la tarea por el tiempo que el SO considere necesario, se guardan los registros y se cambia de tarea.. lo demas es repetir el proceso hasta apagar la computadora...  ;D

Saludos!

PD: Espero no estar equivocado..
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.958


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Pregunta simple sobre registros
« Respuesta #7 en: 24 Abril 2014, 05:52 am »

Si, fue lo que intente decir, tal vez sin exito  ;D
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
zonahurbana

Desconectado Desconectado

Mensajes: 178

RS, JC.


Ver Perfil WWW
Re: Pregunta simple sobre registros
« Respuesta #8 en: 25 Abril 2014, 05:35 am »

En cuanto a conocimiento de hardware estoy bastante mal... estuve leyendo acerca de esto, y con lo que comentan, a ver si entendí:

A los registro se accede más rápidamente ya que no es necesario hacer uso del bus de datos para acceder a la memoria, sino que se accede a ellos directamente (no estoy muy seguro cómo exactamente, además en otra parte del texto decía que es una zona especial de memoria, con lo que parece contradecirse).

Los registros de segmentos permiten seleccionar un segmento en particular (como el de datos, el de código, etc). No es que esos registros guarden información, sólo guardan la dirección de la base del segmento. Luego a estos valores se les multiplicará por 10h y sumará un desplazamiento.

Los procesadores no se centran en un único proceso, sino que posponen las instrucciones momentáneamente para ir por otros, en eso deben guardan los valores actuales de los registros en pila para usar los nuevos valores del nuevo programa que se ejecuta. Cuando se deba volver al que se estaba antes se carga de la pila y se avanzan algunas instrucciones más. Aparentemente se ejecutan varios procesos simultáneamente, pero lo que ocurre es que se dan pasadas de a pocos en cada uno de ellos. De no ser así, el ordenador estaría pendiente de recibir lo que actualmente estoy escribiendo y no podría continuar ejecutando dota2 y otras aplicaciones que tengo abiertas.
En línea

Nunca dejar de aprender es importante, más allá del ritmo que se siga ...
Vaagish


Desconectado Desconectado

Mensajes: 875



Ver Perfil
Re: Pregunta simple sobre registros
« Respuesta #9 en: 25 Abril 2014, 19:51 pm »

Citar
A los registro se accede más rápidamente ya que no es necesario hacer uso del bus de datos para acceder a la memoria, sino que se accede a ellos directamente (no estoy muy seguro cómo exactamente, además en otra parte del texto decía que es una zona especial de memoria, con lo que parece contradecirse).

No entiendo bien a que hará referencia que es una "zona especial de memoria", sera porque son como pequeñas memorias  :huh:
Lo demás esta todo correcto, aunque aclaro que el procesador tiene unos buses dentro, bus de datos y bus de control (quizás algún otro que no recuerdo), busca alguna imagen en google de como esta diseñado un procesador..

Citar
Los registros de segmentos permiten seleccionar un segmento en particular (como el de datos, el de código, etc). No es que esos registros guarden información, sólo guardan la dirección de la base del segmento. Luego a estos valores se les multiplicará por 10h y sumará un desplazamiento.
Los procesadores no se centran en un único proceso, sino que posponen las instrucciones momentáneamente para ir por otros, en eso deben guardan los valores actuales de los registros en pila para usar los nuevos valores del nuevo programa que se ejecuta. Cuando se deba volver al que se estaba antes se carga de la pila y se avanzan algunas instrucciones más. Aparentemente se ejecutan varios procesos simultáneamente, pero lo que ocurre es que se dan pasadas de a pocos en cada uno de ellos. De no ser así, el ordenador estaría pendiente de recibir lo que actualmente estoy escribiendo y no podría continuar ejecutando dota2 y otras aplicaciones que tengo abiertas.

Creo que si, todo así.

PD: Yo tampoco la tengo re clara, puede que pifee

Saludos!!
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
una pregunta simple ..
Programación Visual Basic
Xephiro 3 1,663 Último mensaje 28 Mayo 2006, 02:59 am
por <--v1c1ous-->
UNA Pregunta muy simple « 1 2 »
Programación Visual Basic
crauss 11 3,705 Último mensaje 16 Enero 2008, 06:00 am
por Syddhartha
pregunta simple
Java
l337* 4 3,587 Último mensaje 20 Enero 2008, 04:24 am
por l337*
pregunta simple sobre JFrame en netbeans ,como Cerrar ventana especifica????
Java
XpandyX 3 60,744 Último mensaje 1 Mayo 2014, 19:04 pm
por waltgm
Pregunta simple sobre HTML
Desarrollo Web
z3nth10n 6 3,250 Último mensaje 23 Mayo 2012, 15:02 pm
por z3nth10n
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines