









Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
ÍNDICE: FORMATO INTERNO DE UN PROGRAMA FORMATO EXTERNO DE UN PROGRAMA EJEMPLO PRÁCTICO DE UN PROGRAMA SEGMENTOS REGISTROS DE PROPÓSITO GENERAL REGISTROS APUNTADORES E ÍNDICES REGISTROS SEGMENTO Y APUNTADOR INSTRUCCIONES REGISTROS DE ESTADO
Tipo: Diapositivas
1 / 16
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!










Etiq1: MOV AX,001AH ; Inicializa AX con el valor 001A
Etiqueta "Etiq1" (Identificable como etiqueta por el símbolo final ":" Instrucción "MOV" Operandos "AX" como destino y "001A" como fuente Comentario que sigue después del “;”
UNO EQU 0001H
Nombre de la constante que definimos “UNO” “EQU” Directiva utilizada para usar a “UNO” “0001H” es el operando, guarda a UNO
Es necesario darle cierta información de los recursos que se van a utilizar, como por ejemplo los segmentos de memoria que se van a utilizar, datos iniciales del programa y también donde inicia y donde termina nuestro código
La directiva .MODEL define el tipo de memoria que se utilizará La directiva .CODE nos indica que lo que esta a continuación es nuestro programa La etiqueta Programa indica al ensamblador el inicio del programa La directiva .STACK le pide al ensamblador que reserve un espacio de memoria para las operaciones de la pila La instrucción END Programa marca el final del programa
La directiva .DATA le indica al ensamblador que lo que está escrito a continuación debe almacenarlo en el segmento de memoria destinado a los datos. La directiva DB es utilizada para Definir Bytes, esto es, asignar a cierto identificador (en este caso "Texto") un valor, ya sea una constante o una cadena de caracteres.
La arquitectura de los procesadores x86 obliga al uso de segmentos de memoria para manejar la información, el tamaño de estos segmentos es de 64kb.
Considerando que el tamaño máximo de un número que puede manejar el procesador esta dado por una palabra de 16 bits o registro, no sería posible accesar a más de 65536 localidades de memoria utilizando uno solo de estos registros.
Nos es posible accesar a una cantidad de 4294967296 bytes de memoria, lo cual es, en la actualidad, más memoria de la que veremos instalada en una PC
Para que el ensamblador pueda manejar los datos es necesario que cada dato o instrucción se encuentren localizados en el área que corresponde a sus respectivos segmentos
AX - acumulador: Encargado de almacenar el resultado de operaciones aritméticas y lógicas BX - base: Utilizado para calcular direcciones relativas de datos en la memoria CX - contador: Almacenar el número de veces que un ciclo de instrucciones debe repetirse DK - datos: Se utiliza para acceder a las variables almacenadas en la memoria
El microprocesador 80x86 cuenta con 4 registros de propósito general:
REGISTROS INTERNOS DEL
80x
SP (Apuntador de pila): Controla el acceso de los datos a la pila de los programas, todos los programas en lenguaje ensamblador utilizan una pila para almacenar datos temporales. BP (Apuntador base): Proporciona direcciones para la transferencia e intercambio de datos.
El 80x86 cuenta con dos registros apuntadores SP y BP
SI (Índice Fuente): Proporciona la dirección inicial para que una cadena sea manipulada DI (Índice Destino): Proporciona la dirección de destino donde por lo general una cadena será almacenada después de alguna operación de transferencia.
Están estrechamente ligados con operaciones de cadenas de dato
CF (Acarreo) Esta bandera indica el acarreo o préstamo después de una suma o resta. OF (Sobreflujo) Esta bandera indica cuando el resultado de una suma o resta de números con signo sobrepasa la capacidad de almacenamiento de los registros. SF (Signo) Esta bandera indica si el resultado de una operación es positivo o negativo. SF= es positivo, SF=1 es negativo. DF (Dirección) Indica el sentido en el que los datos serán transferidos en operaciones de manipulación de cadenas. DF=1 es de derecha a izquierda y DF=0 es de izquierda a derecha.
Conocido también como registro de banderas (Flags), tiene como función principal almacenar el estado individual de las diferentes condiciones que son manejadas por el microprocesador.
ZF (Cero) Indica si el resultado de una operación aritmética o lógica fue cero o diferente de cero. ZF=0 es diferente y ZF=1 es cero. IF (interrupción) Activa y desactiva la terminal INTR del microprocesador. PF (paridad) Indica la paridad de un número. Si PF=0 la paridad es impar y si PF=1 la paridad es par. AF (Acarreo auxiliar) Indica si después de una operación de suma o resta ha ocurrido un acarreo de los bits 3 al 4. TF (Trampa) Esta bandera controla la ejecución paso por paso de un programa con fines de depuración.
REFERENCIAS