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

INTRODUCCION AL LENGUAJE ENSAMBLADOR, Apuntes de Lenguaje de Ensamblaje

un pequeño sintesis sobre la introduccion al lenguaje ensamblador

Tipo: Apuntes

2020/2021
En oferta
30 Puntos
Discount

Oferta a tiempo limitado


Subido el 02/04/2021

DIANA16001
DIANA16001 🇲🇽

5

(1)

1 documento

1 / 18

Toggle sidebar
Discount

En oferta

Documentos relacionados


Vista previa parcial del texto

¡Descarga INTRODUCCION AL LENGUAJE ENSAMBLADOR y más Apuntes en PDF de Lenguaje de Ensamblaje solo en Docsity! Carretera Vigía Chico Km 1.5, Felipe Carrillo Puerto, Quintana Roo, México, C.P. 77200, Tel. (83) 267-10-48, e-mail: direccion@itscarrillopuerto.edu.mx Tecnológico Nacional de México Campus Felipe Carrillo Puerto Ingeniería en Sistemas Computacionales SEMESTRE MARZO – JULIO 2021 Asignatura LENGUAJE DE INTERFAZ Tema Tema 1 Introducción al lenguaje ensamblador EVIDENCIA DE APRENDIZAJE 1.2 Reporte Escrito Profesor PALOMA GONGORA SABIDO Alumno (s): JESUS ALBERTO KU GONZALEZ ISC-6A Felipe Carrillo Puerto a 15 de Marzo de 2021. Carretera Vigía Chico Km 1.5, Felipe Carrillo Puerto, Quintana Roo, México, C.P. 77200, Tel. (83) 267-10-48, e-mail: direccion@itscarrillopuerto.edu.mx 1.1 Importancia de la programación en lenguaje ensamblador. La importancia del lenguaje ensamblador radica principalmente que se trabaja directamente con el microprocesador; por lo cual se debe de conocer el funcionamiento interno de este, tiene la ventaja de que en él se puede realizar cualquier tipo de programas que en los lenguajes de alto nivel no lo pueden realizar. Otro punto sería que los programas en ensamblador ocupan menos espacio en memoria. El lenguaje ensamblador, es un lenguaje de programación de bajo nivel. Consiste en un conjunto de mnemónicos que representan instrucciones básicas para los computadores, microprocesadores, micro controladores y otros circuitos integrados programables. Implementa una representación simbólica de los códigos de máquina binarios y otras constantes necesarias para programar una arquitectura de procesador y constituye la representación más directa del código máquina específico para cada arquitectura legible por un programador. Ventajas Ø Como trabaja directamente con el microprocesador al ejecutar un programa, pues como este lenguaje es el más cercano a la máquina la computadora lo procesa más rápido. Ø Eficiencia de tamaño. - Un programa en ensamblador no ocupa mucho espacio en memoria porque no tiene que cargan librerías y demás como son los lenguajes de alto nivel Ø Flexibilidad. - Es flexible porque todo lo que puede hacerse con una máquina, puede hacerse en el lenguaje ensamblador de esta máquina; los lenguajes de alto nivel tienen en una u otra forma limitante para explotar al máximo los recursos de la máquina. Carretera Vigía Chico Km 1.5, Felipe Carrillo Puerto, Quintana Roo, México, C.P. 77200, Tel. (83) 267-10-48, e-mail: direccion@itscarrillopuerto.edu.mx Definición de registros Un registro es una memoria de alta velocidad y poca capacidad, integrada en el microprocesador, que permite guardar transitoriamente y acceder a valores muy usados, generalmente en operaciones matemáticas. Se utilizan para aumentar la velocidad de ejecución de los programas. Su función es la de almacenar datos, siendo la manera más rápida de hacerlo por el sistema. Los registros se miden en número de bits que almacenan. La CPU, en cambio, comparte un conjunto de localidades de almacenamiento temporal de datos de alta velocidad, denominada con el mismo nombre: registro. Tipos de registros Registros de propósito especifico Almacenan información específica sobre el estado del sistema como el puntero de pila o el registro de estado. Permiten llevar un récord de estado del procesador en todo momento. Los más importantes son el contador de programa (PC), el registro de banderas, y el apuntador de pila (SP). Función de los registros Los registros están en la cumbre de la jerarquía de memoria, y son la manera más rápida que tiene el sistema de almacenar datos. Los registros se miden generalmente por el número de bits que almacenan; por ejemplo, un "registro de 8 bits" o un "registro de 32 bits “. La CPU contiene un conjunto de localidades de almacenamiento temporal de datos de alta velocidad llamada registro. Algunos de los registros están dedicados al control, y solo la unidad de control tiene acceso a ellos. Los registros restantes son los registros de uso general y el programador es el usuario que tiene acceso a ellos. Carretera Vigía Chico Km 1.5, Felipe Carrillo Puerto, Quintana Roo, México, C.P. 77200, Tel. (83) 267-10-48, e-mail: direccion@itscarrillopuerto.edu.mx Registros básicos Ø Dentro del conjunto básico de registros de control se deben incluir a los siguientes: Ø Contador de programa (PC). Ø Registro de direcciones de la memoria (MAR). Ø Registro de datos (RD). Ø Registro de instrucciones (IR). Ø Palabra de estado de programa (PSW). Carretera Vigía Chico Km 1.5, Felipe Carrillo Puerto, Quintana Roo, México, C.P. 77200, Tel. (83) 267-10-48, e-mail: direccion@itscarrillopuerto.edu.mx Estructura del Microprocesador Carretera Vigía Chico Km 1.5, Felipe Carrillo Puerto, Quintana Roo, México, C.P. 77200, Tel. (83) 267-10-48, e-mail: direccion@itscarrillopuerto.edu.mx Sistemas de prioridad El sistema operativo necesita un mecanismo para priorizar las interrupciones y tratar primero las más urgentes. Para ello, existen varias alternativas: · Interrupciones simultáneas: No tienen por qué ocurrir de manera simultánea, sino que se refiere a que en un momento dado puede haber varias interrupciones activas. · Interrupciones anidadas: Mientras se está procesando una determinada rutina de servicio de interrupción sucede otra señal de interrupción. · Inhibición de interrupciones: Se deshabilitan las demás interrupciones mientras se está tratando una. Determinación de la fuente que genera la interrupción Hay distintas formas de identificar la fuente de una determinada interrupción. · Polling: el microprocesador comprueba de manera sistemática todos los dispositivos de manera que «busca» cuál de ellos fue el que solicitó la interrupción. · Interrupciones vectorizadas: Como ventajas podemos destacar que suele ser rápido, pero implica un alto costo en el hardware. · Hardware paralelo: se utiliza un registro de interrupción cuyos bits se controlan de forma independiente por las señales de petición de interrupción de cada periférico. Según la posición de cada bit en el registro, se establece la prioridad. Carretera Vigía Chico Km 1.5, Felipe Carrillo Puerto, Quintana Roo, México, C.P. 77200, Tel. (83) 267-10-48, e-mail: direccion@itscarrillopuerto.edu.mx Interrupciones · int 01h-->un solo paso · int 02h-->interrupción no enmascarable · int 03h--> punto de interrupción · int 04h-->desbordamiento · int 05h-->impresión de pantalla · int 08h-->Cronometro · int 15h-->Servicios del sistema · int 16h-->Funciones de entrada del teclado · int 18h-->Entrada con el Basic de ROM · int 1Ah-->Leer y establecer la hora · int 1Bh-->Obtener el control con una interrupción de teclado. · int 2oh-->Terminar un programa · int 33h->Funciones del Ratón Carretera Vigía Chico Km 1.5, Felipe Carrillo Puerto, Quintana Roo, México, C.P. 77200, Tel. (83) 267-10-48, e-mail: direccion@itscarrillopuerto.edu.mx 1.5 Llamadas a servicios del sistema Llamadas al sistema no bloqueantes Son aquellas llamadas en las que, si lo que se solicita no está disponible, el proceso no se queda bloqueado, sino que devuelven un valor especial indicando la condición de información no disponible Llamadas al sistema bloqueantes La aplicación se bloquea a la espera del resultado. Si un hilo hace una llamada bloqueante, todos los hilos se bloquearán. Si hace una llamada no bloqueante, los demás hilos podrán seguir ejecutando. Una llamada al sistema es un método o función que puede invocar un proceso para solicitar un cierto servicio al sistema operativo. Dado que los accesos a ciertos recursos del sistema requieren la ejecución de código en modo privilegiado, el sistema operativo ofrece un conjunto de métodos o funciones que el programa puede emplear para acceder a dichos recursos. llamadas al sistema Se activa una interrupción ejecutando una operación especial conocida “Llamada al sistema" Esta se lanza cuando: Ø Una aplicación de usuario solicita un servicio del sistema operativo. Ø Proporciona los medios para que un programa de usuario pida al so que realice tareas reservadas del SO en nombre del programa de usuario. Ø Una llamada al sistema se invoca de diversas maneras dependiendo de la funcionalidad proporcionada por el procesador subyacente. Ø Se trata de un método usado por un proceso para solicitar la actuación del SO. Ø Normalmente una llamada al sistema toma la forma de una excepción que efectúa una transferencia a una posición específica en el vector de interrupción. Carretera Vigía Chico Km 1.5, Felipe Carrillo Puerto, Quintana Roo, México, C.P. 77200, Tel. (83) 267-10-48, e-mail: direccion@itscarrillopuerto.edu.mx · El valor constante no se tiene que buscar en memoria, pues ya se obtuvo al hacer el “fetch” de la instrucción. Ejemplo: MOV AH, 9 Modo directo · Uno de los operandos involucra una localidad específica de memoria · El valor constante se tiene que buscar en memoria, en la localidad especificada. · Es más lento que los anteriores, pero es el más rápido para ir a memoria, pues ya “sabe” la localidad, la toma de la instrucción y no la tiene que calcular. Ejemplo: MOV AH, [0000] Modo indirecto · Se usan los registros SI, DI como apuntadores · El operando indica una localidad de memoria, cuya dirección (sólo la parte desplazamiento) está en SI o DI. · Es más lento que los anteriores, pues tiene que “calcular” la localidad Ejemplos: MOV AL, [SI] Modo indexado de base Formato: [ BX o BP + SI o DI (opcionales) + constante (opcional) ] · BX o BP indica una localidad base de la memoria · A partir de BX o BP, se puede tener un desplazamiento variable y uno constante · La diferencia es el segmento sobre el que trabajan por defecto: · BX por defecto en el segmento de datos · BP por defecto en el segmento de pila. Ejemplos: Ø MOV AX, [BX] Carretera Vigía Chico Km 1.5, Felipe Carrillo Puerto, Quintana Roo, México, C.P. 77200, Tel. (83) 267-10-48, e-mail: direccion@itscarrillopuerto.edu.mx Ø MOV DX, [BX+2] Ø MOV CX, [BX+DI] Ø MOV DL, [BX+SI+3] Absoluto El campo de operando contiene una dirección en memoria, en la que se encuentra la instrucción. Y no se cancela. Indirecto recursivo Unos pocos sistemas como el PDP-6 o el PDP-10 tenían la posibilidad de direccionamiento indirecto recursivo. Tal dirección de memoria indirecta tenía un campo de registro para indexación y posiblemente un otro bit indirecto, de modo que el proceso de direccionamiento indirecto con indexación podría teóricamente repetirse cualquier número de veces hasta que se encontrara una dirección sin un bit indirecto en la cadena. Indirecto mediante registros El campo de operando de la instrucción contiene un identificador de registro en el que se encuentra la dirección efectiva del operando. El control localiza la instrucción de la memoria y utiliza su parte de dirección para acceder a la memoria de nuevo para leer una dirección efectiva. Unos pocos modos de direccionamiento requieren que el campo de dirección de la instrucción sea sumado al control de un registro especificado en el procesador. La dirección efectiva en este modo se obtiene del siguiente cálculo: Dir. efectiva = Dir. de la parte de la instrucción + Contenido del registro del procesador. De desplazamiento Combina el modo directo e indirecto mediante registros. De pila Se utiliza cuando el operando está en memoria y en la cabecera de la pila. Este direccionamiento se basa en las estructuras denominadas Pila (tipo LIFO), las cuales están marcados por el fondo de la pila y el puntero de pila (*SP). El Carretera Vigía Chico Km 1.5, Felipe Carrillo Puerto, Quintana Roo, México, C.P. 77200, Tel. (83) 267-10-48, e-mail: direccion@itscarrillopuerto.edu.mx puntero de pila apunta a la última posición ocupada. Así, como puntero de direccionamiento usaremos el SP. El desplazamiento más el valor del SP nos dará la dirección del objeto al que queramos hacer referencia. En ocasiones, si no existe C. de desplazamiento solo se trabajará con la cima de la pila. 1.7 Proceso de ensamblado y ligado 1. El programa utiliza un editor de texto para crear un archivo de texto ASCII, conocido como archivo de código fuente. 2. El ensamblador lee el archivo de código fuete y produce un archivo de código objeto, una traducción del programa a lenguaje máquina. De manera opcional, produce un archivo de listado. Si ocurre un error, el programador debe regresar al paso 1 y corregir el programa. 3. El enlazador lee el archivo de código objeto y verifica si el programa contiene alguna llamada a los procedimientos en una biblioteca de enlace. 4. La herramienta cargadora del sistema operativo lee el archivo ejecutable y lo carga en memoria, y bifurca la CPU hacia la dirección inicial del programa, para que éste empiece a ejecutarse. Edición Los archivos fuente de código ensamblador deben estar en formato ASCII standard. Para esto puede usarse cualquier editor que permita crear archivos sin formato. Ensamblado El ensamblado se lleva a cabo invocando al MASM. Este puede ser invocado, usando una línea de comando, de la siguiente manera: MASM archivo [,[objeto][,[listado][,[cross]]]]][opciones][;] Dónde: Objeto.- Es el nombre para el archivo objeto. Listado. - Nombre del archivo de listado de ensamblado. cross. Es un archivo de referencias cruzadas.
Docsity logo



Copyright © 2024 Ladybird Srl - Via Leonardo da Vinci 16, 10126, Torino, Italy - VAT 10816460017 - All rights reserved