Apuntes Unidad 1
Apuntes Unidad 1
Apuntes Unidad 1
Tipos de registros:
Registros de segmento.
Registros de propósito general.
Registros de apuntadores.
Registros de banderas.
Registros de Pila.
Registros Indice.
Registros de segmento:
Los registros de propósito general AX, BX, CX y DX son los caballos de batalla del
sistema. Son únicos en el sentido de que se puede direccionarlos como una palabra o
como una parte de un byte. El ultimo byte de la izquierda es la parte “alta”, y el ultimo byte
de la derecha es la parte “baja”. Por ejemplo, el registro CX consta de una parte CH (alta)
y una parte Cl (baja), y usted puede referirse a cualquier parte por su nombre.
Registro AX: El registro AX, el acumulador principal, es utilizado para operaciones
que implican entrada/salida y la mayor parte de la aritmética. Por ejemplo, las
instrucciones para multiplicar , dividir y traducir suponen el uso del AX. También, algunas
operaciones generan código mas eficiente si se refieren al AX en lugar de a los otros
registros.
Registro BX: El BX es conocido como el registro base ya que es el único registro de
propósito general que puede ser índice para direccionamiento indexado. También es
común emplear el BX para cálculos.
Registro DX: Es conocido como el registro de datos. Alguna operaciones de
entrada/salida requieren uso, y las operaciones de multiplicación y división con cifras
grandes suponen al DX y al AX trabajando juntos.
Registros Apuntadores:
Registros Indice:
Registro de Banderas :
De los 16 bits del registro de banderas, nueve son comunes a toda la familia de
procesadores 8086, y sirven para indicar el estado actual de la maquina y el resultado del
procesamiento. Muchas instrucciones que piden comparaciones y aritmética cambian el
estado de las banderas, algunas cuyas instrucciones pueden realizar pruebas para
determinar la acción subsecuente. En resumen, los bits de las banderas comunes son
como sigue:
OF (Overflow, desbordamiento): Indica desbordamiento de un bit de orden alto
(mas a la izquierda) después de una operación aritmética.
DF (dirección): Designa la dirección hacia la izquierda o hacia la derecha para
mover o comparar cadenas de caracteres.
IF (interrupción): Indica que una interrupción externa, como la entrada desde el
teclado, sea procesada o ignorada.
TF (trampa): Permite la operación del procesador en modo de un paso. Los
programas depuradores, como el DEBUG, activan esta bandera de manera que usted
pueda avanzar en la ejecución de una sola instrucción a un tiempo, para examinar el
efecto de esa instrucción sobre los registros de memoria.
SF (signo): Contiene el signo resultante de una operación aritmética (0 = positivo y
1 = negativo).
ZF (cero): Indica el resultado de una operación aritmética o de comparación (0 =
resultado diferente de cero y 1 = resultado igual a cero).
AF (acarreo auxiliar): Contiene un acarreo externo del bit 3 en un dato de 8 bits
para aritmética especializada.
PF (paridad): Indica paridad par o impar de una operación en datos de 8 bits de
bajo orden (mas a la derecha).
CF (acarreo): Contiene el acarreo de orden mas alto (mas a la izquierda) después
de una operación aritmética; también lleva el contenido del ultimo bit en una operación de
corrimiento o de rotación. Las banderas están en el registro de banderas en las siguientes
posiciones:
Las banderas mas importantes para la programación en ensamblador son O, S, Z y C,
para operaciones de comparación y aritméticas, y D para operaciones de cadenas de
caracteres. Los procesadores 80286 y posteriores tienen algunas banderas usadas para
propósitos internos, en especial las que afectan al modo protegido. Los procesadores
80286 y posteriores tienen un registro extendido de banderas conocido como Eflags.
Registros de PILA:
La pila es un área de memoria importante y por ello tiene, en vez de uno, dos registros
que se usan como desplazamiento (offset) para apuntar a su contenido. Se usan como
complemento al registro y son:
SP (Stack Pointer) : Se traduce como puntero de pila y es el que se reserva el
procesador para uso propio en instrucciones de manipulado de pila. Por lo general , el
programador no debe alterar su contenido.
BP (Base pointer): Se usa como registro auxiliar. El programador puede usarlo
para su provecho.