jueves, 25 de enero de 2018

Registro de datos en lenguaje ensamblador

· AX (acumulador) 
· BX (registro base) 
· CX (registro contador) 
· DX (registro de datos) 
· DS (registro del segmento de datos)
· ES (registro del segmento extra) 
· SS (registro del segmento de pila) 
· CS (registro del segmento de código) 
· BP (registro de apuntadores base) 
· SI (registro índice fuente) 
· DI (registro índice destino) 
· SP (registro del apuntador de pila) 
· IP (registro del apuntador de siguiente instrucción) 
· F (registro de banderas) 

El registro AX se usa para almacenar resultados, lectura o escritura desde o hacia los puertos. El BX sirve como apuntador base o índice. El CX se utiliza en operaciones de iteración, como un contador que automáticamente se incrementa o decrementa de acuerdo con el tipo de instrucción usada. El DX se usa como puente para el acceso de datos. 

El DS es un registro de segmento cuya función es actuar como policía donde se encuentran los datos. Cualquier dato, ya sea una variable inicializada o no, debe estar dentro de este segmento. La única excepción es cuando tenemos programas del tipo *.com, ya que en éstos sólo puede existir un segmento. El registro ES tiene el propósito general de permitir operaciones sobre cadenas, pero también puede ser una extensión del DS. 

El SS tiene la tarea exclusiva de manejar la posición de memoria donde se encuentra la pila (stack) Esta es una estructura usada para almacenar datos en forma temporal, tanto de un programa como de las operaciones internas de la computadora personal (PC, por sus siglas en inglés) En términos de operación interna, la CPU usa este segmento para almacenar las direcciones de retorno de las llamadas a rutinas. El registro de segmentos más importante es el CS o segmento de código. Es aquí donde se encuentra el código ejecutable de cada programa, el cual está directamente ligado a los diferentes modelos de memoria.

El registro BP (base pointer) se usa para manipular la pila sin afectar al registro de segmentos SS. Es útil cuando se usa interfaz entre lenguajes de alto nivel y el ensamblador. Puesto que dicha interfaz se basa en el concepto de la pila BP, nos permite acceder parámetros pasados sin alterar el registro de segmento SS. Los registros SI y DI son útiles para manejar bloques de cadenas en memoria, siendo el primero el índice fuente y el segundo el índice destino. En otras palabras, SI representa la dirección donde se encuentra la cadena y DI la dirección donde será copiada.

El registro SP apunta a un área específica de memoria que sirve para almacenar datos bajo la estructura LIFO (último en entrar, primero en salir), conocida como pila (stack) El registro IP (instruction pointer) apunta a la siguiente instrucción que será ejecutada en memoria.

Un pequeño vídeo que explica de mejor forma el tema:
https://www.youtube.com/watch?v=eARl-aZ06FI

No hay comentarios.:

Publicar un comentario

Psy - Gangnam Style Psy - Gangnam Style Animated Rainbow Nyan Cat Animated Rainbow Nyan CatDancing Banana/* Start http://www.cursors-4u.com */ body, a:hover {cursor: url(http://cur.cursors-4u.net/food/foo-2/foo112.ani), url(http://cur.cursors-4u.net/food/foo-2/foo112.png), progress !important;} /* End http://www.cursors-4u.com */Animated Rainbow Nyan Cat