jueves, 6 de agosto de 2015

Explicacion

La familia de procesadores 8086 esta relacionado con ensamblador, los registros (ahora entenderas que es esto) son los siguientes:

 Registros de datos: AX BX CX DX
 Punteros de pila: SP BP
 Registros de índice: DI SI
 Registros de segmento: CS DS ES SS
 Registro de flags: De momento esto no se explicara

El registro de datos es exactamente lo que crees, es para mantener datos. Todos ellos (AX, BX, CX, DX) tienen "practicamente" la misma funcionalidad, y entrecomillo practicamente porque en algunos casos una operacion usa exactamente uno y solo ese.

 AX: se le llama acumulador porque es el que se usa para acumular datos, esto es mas por razones historicas mas que por otra cosa... Por ejemplo: si quisieses hacer esta operacion  2+2+5+22, lo que habria que hacer es mover a AX el primer operando (2) luego sumarle el segundo operando (2), sumarle el siguiente (5), etc..

 BX: se suele usar para apuntar a direcciones de memoria.

 CX: se usa como contador.. si vienes de otro lenguaje de programacion te sonara mucho lo de "for(int i=0; i<100; i++)", pues aqui CX seria la variable i

 DX: Se suele usar junto con AX

 Todos los registros antes mencionados son de 16 bits, es decir, de 4 bytes (16/4=4), para hacer referencia a uno de 32 bits, es decir, 8 bytes, hace falta ponerle una "E" delante, por lo tanto quedaria asi: EAX EBX ECX EDX.

Un simple ejemplo en el que se suman unos numeros:


; En cualquier parte del editor si escribes el punto y coma ";" se entiende que es un 
; comentario  ; Esto es un comentario, lo que en C seria //
mov ax, 2 ; movemos al registro el numero 2
add ax, 5  ; a lo que haya en ax(2) le sumamos el numero 5
add ax, 6  ; y ahora le añadimos el numero 6
; Ahora mismo el valor de AX en decimal es igual a (2+5+6) 13..









 

No hay comentarios:

Publicar un comentario