Problemas con registros teoria

Iniciado por -el director del cole-, 4 Septiembre 2010, 15:29 PM

0 Miembros y 1 Visitante están viendo este tema.

-el director del cole-

Hola,llevo tiempo buscando informacion y leyendo sobre este lenguage tan dificil, (al menos se me hace para mi) tengo varios manuales ,libros de programacion en esamblador e incluso el abril negro de eon,el caso es que he cogido con ganas este lenguage ya que creo que me puede ayudar en el mundillo del cracking y de ecribir exploits etc...Bueno al grano,por mucho que leo no me ago a la idea fisicamente de lo que quiere decir cada cosa y situarme en ningun ejemplo que me lo pueda imagniar dichas definiciones,en estos casos ablo de los registros de el microprocesador.

EAX:
Registro acumulador. Cualquier instrucción de retorno, almacenara dicho valor en
EAX. También se usa para sumar valores a otros registros en funciones de suma,
etc....

EBX

Registro base. Se usa como "manejador" o "handler" de ficheros, de direcciones
de memoria (para luego sumarles un offset) etc...

ECX

Registro contador. Se usa, por ejemplo, en instrucciones ASM loop como contador,
cuando ECX llega a cero, el loop se acaba.

EDX

Registro dirección o puntero. Se usa para referenciar a direcciones de memoria
mas el offset, combinado con registros de segmento (CS, SS, etc..)

Como digo aki esta claramente explicado cual es su funcion de cada uno de ellos etc...


Por ejemplo el registro acumulador que acumula?
                 el registro manejador que maneja?
                 el registro contador que cuenta?
                 el registro de direccion o puntero que funcion tiene?


En conclusion que alguien me explique en una explicacion para "bobos" o con dibujitos si hace falta,claramente que funcion tiene cada uno.

Queria pedir perdon por alguna falta de ortografia y por si no me se explicar bien ante la duda que tengo,pero es algo que veo que es tan basico que sin esta teoria no puedo avanzar.

08l00D

Es que no lo podes entender asi nomas, cuando empiezes a ver las instrucciones te vas empezar a dar cuenta por que se le llaman asi... por ejemplo.. en el registro acumulador se suelen devolver los valores de muchas operaciones aritmeticas o logicas.. ya sea en al-ah,ax o eax..o combinaciones con otro registro...ej...eax-edx si el resultado es muy grande... que porcierto a edx yo lo conocia como registro de datos(o data register)... el acumulador tambien es exigido en algunas instrucciones como un operador implicito ....osea que se necesita que el valor que utiliza la instruccion tiene que estar almacenado en al-ah,ax,o eax...
el registro contador es usado en bucles ... con instrucciones como LOOP, o el salto condicional JCXZ ... donde se almacena el valor de veces a repetirse un ciclo....
el registro de base...como el nombre dice sirve para almacenar direcciones bases..para despues direccionar la memoria como te guste y hacer lo que tengas que hacer...igualmente esto ahora lo podes hacer con cualquier registro de proposito general...  pasa que cuando estas trabajando con un micro de 16 bits ... el unico registro de proposito general que se puede usar como un puntero para acceder a direcciones de memoria ... era bx..
leete las referencias de las instrucciones y lo vas a entender mejor...

-el director del cole-

Entonces dices que mirando source codes (codigos) podre llegar a entender su funcionamiento de cada uno?

08l00D

Cita de: summer2010 en  4 Septiembre 2010, 19:39 PM
Entonces dices que mirando source codes (codigos) podre llegar a entender su funcionamiento de cada uno?
Posiblemente....igual leete la documentacion de intel acerca de las instrucciones...y lee un libro de ensamblador..