Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: FKT en 9 Septiembre 2015, 15:43 pm



Título: Procesador x86
Publicado por: FKT en 9 Septiembre 2015, 15:43 pm
Buenas cito textualmente lo que pone en mi libro:

Citar
(Aquí sale código en ensamblador y mas cosas)
De un programa en C, hace un breakpoint en main()
///////////////////////////////////////////////////
Los cuatro primeros registros (EAX,ECZ,EDX, Y EBX) se usan para varias cosas pero funcionan principalmente como variables temporales para la CPU cuando está ejecutando instrucciones de máquina.

Estas variables temporales se guardan en la CPU y cuando las piden pues ya van haciendo lo que tengan que hacer pero esas variables que tienen ?? El valor que tienen designado de que sitio viene? Y estas variables siempre se llaman así o van cambiando su nombre ? Y también por ultimo estras variables temporales que se van cuando el programa ha finalizado o cuando la máquina se apaga?¿


Título: Re: Procesador x86
Publicado por: Pablo Videla en 9 Septiembre 2015, 16:01 pm
Que libro estas leyendo?


Título: Re: Procesador x86
Publicado por: ivancea96 en 9 Septiembre 2015, 16:19 pm
Esois registros son los 4 registros básicos de uso general. No cambian, son esos sus nombres. La CPU los tiene, y ahís es donde guarda información que está utilizando (a parte de la RAM).

Los registros no dependen del programa, es parte de la CPU. Todos los programas, sistema operativo, servicios,... las utilizan.

De todos modos, no las llames variables. """funcionan como variables""", pero son registros. Es algo que lleva ahí desde antes de las variables en la programación xD


Título: Re: Procesador x86
Publicado por: FKT en 9 Septiembre 2015, 16:42 pm
Esois registros son los 4 registros básicos de uso general. No cambian, son esos sus nombres. La CPU los tiene, y ahís es donde guarda información que está utilizando (a parte de la RAM).

Los registros no dependen del programa, es parte de la CPU. Todos los programas, sistema operativo, servicios,... las utilizan.

De todos modos, no las llames variables. """funcionan como variables""", pero son registros. Es algo que lleva ahí desde antes de las variables en la programación xD

Jaja vale, que hay solo 4 en todo lo que compone el SO los programas y servicios?? O 4 para cada acción ?¿

Que libro estas leyendo?

Técnicas Fundamentales Del Hacking
Escritor: Jonh Erikson.


Título: Re: Procesador x86
Publicado por: Pablo Videla en 9 Septiembre 2015, 17:25 pm
gracias por el dato FKT


Título: Re: Procesador x86
Publicado por: ivancea96 en 9 Septiembre 2015, 18:03 pm
Hay solo 4 registros de uso general.

Luego hay otros, como ESI y EDI, ESP y EBP, EIP, y CS,,DS,ES,FS,GS,SS. Si me olvido alguno, pues bueno, los podrías ver en internet.

Con solo esas ""variables"", la CPU corre todo. Los datos que quiere guardar, los guarda además en la RAM.
Los que ahí mencioné tienen información específica. por ejemplo, EIP guarda la dirección de la instrucción que la CPU está "ejecutando".

AX, BX, CX y DX son registros para uso general. El que utiliza la CPU guarda en ellos lo que quiere.


Título: Re: Procesador x86
Publicado por: El Benjo en 10 Septiembre 2015, 20:08 pm
Para entender mejor esta parte de la programación debes verlo a nivel de hardware, es decir, a un nivel de electrónica. Me supongo que estudiando programación antes te habrán dado un curso rápido de electrónica digital (compuertas y esas cosas). Pues bien, en un circuito por ejemplo en de un sumador tenías las entradas binarias que corresponden a los valores que vas a sumar y en la salida tenías otro lugar donde mostrabas el resultado (usualmente leds). Bien, los registros son eso, es la parte donde se guardas los valores con los que el microprocesador ejecutará las instrucciones y donde el microprocesador guardará los resultados de dichas instrucciones. O sea que cada instrucción del micro sigue ciertas reglas sobre donde colocar los valores necesarios y también en cuáles registros de guardará el resultado. En resumen, no son variables es el area o buffer electrónico donde el micro guarda el valor de tus variables para poder ejecutar las instrucciones.