Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


ESTRUCTURA DE UN PROGRAMA EJECUTABLE CARGADO EN MEMORIA, Diapositivas de Programación de Microprocesadores y Lenguaje de Ensamblaje

Í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

2022/2023

A la venta desde 23/07/2024

vianey-rios
vianey-rios 🇲🇽

5 documentos

1 / 16

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
1.1.6 ESTRUCTURA DE UN PROGRAMA
EJECUTABLE CARGADO EN MEMORIA / 1.1.7
ARREGLO DE REGISTROS
INTERNOS / 1.1.8 FORMATO GENERAL DE UN
PROGRAMA EN LENGUAJE ENSAMBLADOR - A
INTEGRANTES:
Cruz López Ninve Alicia
García Enríquez Cesar
Manuel
Rios Gonzalez Vianey Yareli
MATERIA: Programación
de microprocesadores
SEMESTRE: 4 GRUPO: 4
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff

Vista previa parcial del texto

¡Descarga ESTRUCTURA DE UN PROGRAMA EJECUTABLE CARGADO EN MEMORIA y más Diapositivas en PDF de Programación de Microprocesadores y Lenguaje de Ensamblaje solo en Docsity!

1.1.6 ESTRUCTURA DE UN PROGRAMA

EJECUTABLE CARGADO EN MEMORIA / 1.1.

ARREGLO DE REGISTROS

INTERNOS / 1.1.8 FORMATO GENERAL DE UN

PROGRAMA EN LENGUAJE ENSAMBLADOR - A

INTEGRANTES:

Cruz López Ninve Alicia

García Enríquez Cesar

Manuel

Rios Gonzalez Vianey Yareli

MATERIA: Programación

de microprocesadores

SEMESTRE: 4 GRUPO: 4

Í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....................................................................
  • CONCLUSIONES..................................................................................
  • REFERENCIAS.....................................................................................

EJEMPLO

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

FORMATO INTERNO DE UN PROGRAMA...........................................

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

FORMATO PRÁCTICO DE UN 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.

SEGMENTOS

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

REGISTROS DE PROPÓSITO GENERAL.............................................

REGISTROS APUNTADORES E ÍNDICES............................................

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

REGISTROS ÍNDICES

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

REGISTROS DE ESTADO

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.

REGISTROS DE ESTADO....................................................................

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

Guzmán, J. (s.f). Programación en ensamblador para procesadores 80x86 recuperado el
11 de septiembre de http://www.monografias.com/trabajos-pdf/programacion-
ensamblador-procesadores/programacion-ensamblador-procesadores2.shtml
http://moisesrbb.tripod.com/unidad2.htm