Lenguaje Ensamblador. Equipo 3. Alberto Abraham Gomez Cruz Edgar

Documentos relacionados
CICLOS DEL PROCESADOR

Tema 4: Las interrupciones y la ROM-BIOS

Unidad 2: Taller de Cómputo. Estructura y Componentes de la Computadora UNIDAD DOS: INTRODUCCIÓN

INTRODUCCIÓN. Interrupciones.

TEMA 1: Concepto de ordenador

ÍNDICE CAPÍTULO 1 FUNDAMENTOS DE LOS MICROCONTROLADORES

Velocidades Típicas de transferencia en Dispositivos I/O

Arquitectura de computadoras

ESTRUCTURA BÁSICA DE UN ORDENADOR

SISTEMAS OPERATIVOS Arquitectura de computadores

Qué es un programa informático?

Lenguaje binario. Código ASCII. Medidas de la información

Funcionamiento del 8086/8088

Computadora y Sistema Operativo

Tema 5.1: Presentación de datos en pantalla

Tema: Microprocesadores

INDICE Programa Entrada Unidad de control Unidad aritmética y lógica (ALU)

Sistema Operativo. Repaso de Estructura de Computadores. Componentes Hardware. Elementos Básicos

Arquitectura (Procesador familia 80 x 86 )

0-31 : caracteres de control : carac. Comunes : especiales (flechas, símbolos) y particulares (ñ)

INDICE Capitulo 1. Microcontroladores Programables: La Solución está en un CHIP Capitulo 2. Microcontroladores de 8 BITS: Los <<PIC>>

Comunicación interna en la computadora

Periféricos Interfaces y Buses

LABORATORIOS DE: DISPOSITIVOS DE ALMACENAMIENTO Y DE ENTRADA/SALIDA. MEMORIAS Y PERIFÉRICOS.

SISTEMAS BASADOS EN MICROPROCESADORES

1.1. Modelos de arquitecturas de cómputo: clásicas, segmentadas, de multiprocesamiento.

SOPORTE FÍSICO O HARDWARE (I)

Relación de Problemas I

Contenidos. Arquitectura de ordenadores (fundamentos teóricos) Elementos de un ordenador. Periféricos

Manejo de Entrada-Salida. Arquitectura de Computadoras

Introducción a la Computación. Capítulo 10 Repertorio de instrucciones: Características y Funciones

INTRODUCCIÓN. Comunicación Serial.

PREGUNTAS INFORMÁTICA MONITOR UPB EXAMEN 1

MICROCONTROLADORES: FUNDAMENTOS Y APLICACIONES CON PIC. Autores: Fernando E. Valdés Pérez Ramon Pallàs Areny. Título de la obra:

Universidad Católica de Santiago del Estero Facultad de Matemática Aplicada Carrera de Ingeniería en Electrónica

Unidad IV: Programación de microcontroladores

Entrada y Salida! EC-2721 Arquitectura del Computador I! Entradas/Salidas: Problemas. Entradas salidas: Criterios. Amplia variedad de periféricos!

Introducción a los sistemas de entrada/salida Profesores y tutorías

Periféricos Avanzados Práctica 3. Programación del puerto paralelo.

Introducción a la arquitectura de computadores

Funcionamiento de un ordenador. Conrado Perea

ARQUITECTURA DE LOS SISTEMAS BASADOS EN MICROPROCESADOR

Tema 5. Presentación de datos por pantalla

VOCABULARIO DEL HARDWARE. Docente Yeni Ávila

Ensamblador. Interrupciones. Dentro de una computadora existen dos clases de interrupciones:

ARQUITECTURA BÁSICA DEL ORDENADOR: Hardware y Software. IES Miguel de Cervantes de Sevilla

SUBSISTEMA DE ENTRADA-SALIDA. Arquitectura de Computadores I 4º tema

ARQUITECTURA Y FUNCIONAMIENTO DEL ORDENADOR

PROGRAMACIÓN. UNIDAD II. ALGORITMO PROFA : HAU MOY

Velocidades Típicas de transferencia en Dispositivos I/O

Tema 2 Introducción a la Programación en C.

Fundamentos de las TIC

Introducción a la Computación. Herramientas Informáticas. Omar Ernesto Cabrera Rosero Universidad de Nariño

Interrupciones. Sistemas con Microcontroladores y Microprocesadores.

Manejo de Entrada-Salida. Arquitectura de Computadoras

Tema 3 SUBRUTINAS. Estructura de Computadores OCW_2015 Nekane Azkona Estefanía

(1) Unidad 1. Sistemas Digitales Basados en Microprocesador SISTEMAS BASADOS EN MICROPROCESADORES. Grado en Ingeniería Informática EPS - UAM

GESTION DE ENTRADA Y SALIDA

Conceptos y definiciones básicos en computación

8.4. El software en los μprocesadores

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

Diferentes Perspectivas de un Ordenador

Arquitectura de Computadores. Apellidos, Nombre:

UNIDAD 3 ARQUITECTURA DEL Z80. Microprocesadores Otoño 2011

Fundamentos de Programación. Sabino Miranda-Jiménez

ESTRUCTURA DE COMPUTADORES I (Capítulo 16:El Teclado) 1/5 16-EL TECLADO

INTERRUPCIONES. Existen 256 interrupciones En el modo real cada una tiene un vector asociado Vectores de 4 bytes: segmento + offset 32 F0 50 8A

Iniciación a la informática

ARQUITECTURA DE COMPUTADORAS II. Propósito del curso : Ingeniería Ingeniería en Sistemas. Hardware. Clave de la materia: 413

Página 1 de 12 CONCEPTOS INFORMÁTICOS BÁSICOS

BIOS: Basic Input Output System

Guía rápida para gestionar el puerto paralelo del PC

Estructura del Computador

1-Componentes Físicos y Lógicos de un Ordenador.

Tema 4: SISTEMAS DE ENTRADA/SALIDA. Un computador no puede estar formado sólo por la CPU y la memoria.

PRINCIPALES COMPONENTES DE LA PLACA MADRE NAYAT C. BENSALEM MEDINA LUCAS BALDÁN MANZANO HELENA MEDINA SÁNCHEZ 2º BACHILLERATO B

Programación de Sistemas. Unidad 1. Programación de Sistemas y Arquitectura de una Computadora

Sistemas con Microprocesadores I

Se llama hardware a todos los dispositivos que forman la PC y que se puedan tocar, es decir, es todo el conjunto de accesorios que se le pueden

CICLO ESCOLAR JULIO DICIEMBRE

Institución Educativa Distrital Madre Laura Tecnología e Inform ática GRADO 7

Elementos de un programa en C

ESTRUCTURA FÍSICA DEL µp 8086

ENSAMBLE Y MANTENIMIENTO DE COMPUTADORES

Sist s em e a m s s O per e ativos o. s Unidad V Entrada Sali l d i a.

Estructura de un Ordenador

Es un conjunto de palabras y símbolos que permiten al usuario generar comandos e instrucciones para que la computadora los ejecute.

Código: ARC-265. Horas Semanales: 6. Prelaciones: INI-154

TEMA V SISTEMAS DE NUMERACIÓN

Arquitectura del CPU. Organización del Computador 1 Verano 2016

6. Entrada y Salida Explicación de la interfaz entre el computador y el mundo exterior.

FUNCIONAMIENTO DEL ORDENADOR

Introducción a los Sistemas Operativos

Entrada / Salida. Relojes y terminales. Dr. Alonso Ramírez Manzanares 4-Nov-2010

UNIVERSIDAD NACIONAL DE COLOMBIA SEDE BOGOTÁ FACULTAD DE INGENIERÍA INGENIERÍA MECATRÓNICA

PROGRAMA ANALÍTICO DE ASIGNATURA

Bus de direcciones. Bus de datos

2 Año EMP Administración

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

1. Partes del ordenador. Nuevas Tecnologías y Sociedad de la Información

Transcripción:

Lenguaje Ensamblador Equipo 3 Alberto Abraham Gomez Cruz Edgar

Unidad 1 1.3 Interruptores 1.4 Estructura de un programa en ensamblador

Introducción El lenguaje ensamblador es el sistema alfanumérico para escribir código máquina mediante expresiones abreviadas (mnemotécnicos). La compilación es más complicada porque incluye la conversión de operaciones matemáticas complejas, comandos de lenguaje natural o tipos de comandos complejos.

Introducción Cada ordenador tiene su propio lenguaje ensamblador, exclusivo de su CPU; un lenguaje de alto nivel (LAN) puede ser compilado en distintas máquinas.

Introducción Es usado principalmente porque hay aplicaciones o programas que deben tratar directamente con los registros de la máquina, la memoria, dispositivos de E/S, etc.

1.3 Interruptores Definición: Una interrupción es una operación que suspende la ejecución de un programa de modo que el sistema pueda realizar una acción especial. La rutina de interrupción ejecuta y por lo regular regresa el control al procedimiento que fue interrumpido, el cual entonces reasume su ejecución.

1) INTERRUPCIONES INTERNAS DE HARDWARE: Las interrupciones internas son generadas por ciertos eventos que surgen durante la ejecución de un programa. Este tipo de interrupciones son manejadas en su totalidad por el hardware y no es posible modificarlas.

2) INTERRUPCIONES EXTERNAS DE HARDWARE: Las interrupciones externas las generan los dispositivos periféricos, como pueden ser: teclado, impresoras, tarjetas de comunicaciones, etc. También son generadas por los coprocesadores. No es posible desactivar a las interrupciones externas. Estas interrupciones no son enviadas directamente a la UCP, sino que se mandan a un circuito integrado cuya función es exclusivamente manejar este tipo de interrupciones.

3) INTERRUPCIONES DE SOFTWARE: Las interrupciones de software pueden ser activadas directamente por el ensamblador invocando al número de interrupción deseada con la instrucción INT. El uso de las interrupciones nos ayuda en la creación de programas, utilizándolas nuestros programas son más cortos, es más fácil entenderlos y usualmente tienen un mejor desempeño debido en gran parte a su menor tamaño.

IRQ Definición (Interrupt ReQuest - solicitud de interrupción). Canales utilizados para gestionar dispositivos periféricos. Las IRQ son las líneas de interrupción que utilizan los dispositivos para avisar al microprocesador que necesitan su atención.

Números IRQ IRQ 0: cronómetro del sistema. Este interruptor está reservado para el timer del sistema y jamás está disponible para otros dispositivos. IRQ 1: controlador del teclado. IRQ 2: Interrupciones en cascada para las interrupciones IRQ del 8 al 15. IRQ 3: Segundo Puerto Serie (COM2). A menudo es también para el cuarto puerto serie (COM4). IRQ 4: Primer Puerto Serie (COM1). También es utilizado por defecto para el COM3.

Numeros IRQ IRQ 5: Tarjeta de sonido. IRQ 6: Controlador de disquetera. IRQ 7: Puerto Paralelo LPT1 para impresoras o cualquier otro dispositivo que utiliza puerto paralelo. IRQ 8: Reloj del Sistema. IRQ 9, 10, 11: Interrupción disponible para periféricos extras.

Números IRQ IRQ 12: Mouse PS/2 o Placa de Red o similares. IRQ 13: Coprocesador/Unidad de punto flotante IRQ 14: Canal IDE Primario. En sistemas que no se utiliza dispositivos IDE, este canal se utiliza para otros periféricos IRQ 15: Canal IDE Secundario

PIC Definición Los PIC son los circuitos integrados de Microchip Technology Inc., que pertenece a la categoría de los microcontroladores es decir, aquellos componentes que integran en un único dispositivo todos los circuitos necesarios para realizar un completo sistema digital programable.

INT fundamental (es decir, integrada en el compilador de tipo numérico utilizado para definir las variables de explotación números enteros). El tamaño del número que se puede almacenar en un entero depende del hardware. Por lo general, pero no siempre es así de 32 bits el rango de valores está entre -2.147.483.648 y 2.147.483.647.

FLAGS la bandera o flag se refiere a uno o más bits que se utilizan para almacenar un valor binario o código que tiene asignado un significado

1.3.1 Hardware Las interrupciones hardware ocurren cuando un dispositivo necesita atención del procesador y genera una señal eléctrica en la línea IRQ que tiene asignada. Esta señal es recogida y procesada por el controlador de excepciones PIC antes de ser enviada al procesador, lo que puede realizarse de dos formas, según el tipo de interrupción sea enmascarable o no enmascarable.

1.3.1 Hardware Cuando se habla de una significa que, bajo control del software, el procesador puede aceptar o ignorar (enmascarar) la señal de interrupción. Para ello se envía una señal a la patilla INTR, y el procesador la atiende o la ignora en función del contenido de un bit (IF) en un registro (FLAGS) que puede estar habilitado o deshabilitado.

1.3.1 Hardware En el primer caso, cuando se recibe la señal, el procesador concluye la instrucción que estuviese en proceso y a continuación responde con una combinación de señales en algunas de sus patillas componiendo una sucesión de dos señales INTA ("Interrupt Acknowledge ).

1.3.1 Hardware La primera señal es simplemente un aviso; la segunda es una petición para que el PIC coloque en el bus de datos un Byte con el número de interrupción, de forma que el procesador pueda localizar el servicio solicitado.

1.3.1 Hardware El valor recibido (0-255) es multiplicado por 4 para calcular la dirección del vector correspondiente en la tabla de vectores de interrupción, lo que se realiza mediante un desplazamiento binario de dos posiciones a la izquierda.

El procesador dejará de hacer lo que está haciendo para atender al dispositivo para posteriormente regresar a la tarea que estaba ejecutando antes de ser interrumpido.

1.3.1 Hardware A este tipo de interrupción se le conoce como Interrupción por Hardware.

Para atender a un dispositivo el procesador ejecuta una rutina especial llamada Rutina de Servicio a Interrupciones. Las rutinas de servicio a interrupciones, por lo general, se cargan a la memoria RAM como parte del proceso de iniciación de la computadora.

Interrupción no enmascarable significa que la interrupción no puede ser deshabilitada por software. Este tipo de interrupciones ocurren cuando se recibe una señal en la patilla NMI ("Nonmaskable Interrupt") del procesador. Se reservan para casos en que es crítica la respuesta, por ejemplo que se detecte un error de paridad en la memoria. Además son de prioridad más alta que las enmascarables.

1.3.2.- Software Un programa escrito en un lenguaje de alto nivel utiliza funciones de la biblioteca estándar, provistas por el compilador empleado, para realizar la mayoría de las tareas relacionadas con el manejo de los dispositivos de entrada y salida, y la gestión de los archivos y memoria

1.3.2.- Software. Los procesadores Intel de la gama x86 y compatibles, disponen de una instrucción INT que permite generar por software cualquiera de los 256 tipos de interrupción anteriormente descritos

1.3.2.- Software El proceso seguido es exactamente el mismo que si se recibe una interrupción hardware en la patilla INTR, salvo que en este caso se conoce el tipo de interrupción, y no se requiere ningún ciclo INTA. Este tipo de interrupciones son de prioridad más alta que las de hardware (enmascarables y no enmascarables), de forma que si se recibe una interrupción hardware mientras que se ejecuta una software, esta última tiene prioridad

1.3.2.- Software Cuando un programa ejecuta una llamada al sistema interrumpe al procesador.

1.3.2.- Software El procesador dejará de hacer lo que está haciendo para ejecutar la rutina del sistema deseada y posteriormente regresará a la tarea que estaba ejecutando antes de ser interrumpido.

1.3.2.- Software La estructura de una rutina del sistema es igual a la estructura de una rutina de servicio a interrupciones. Una llamada al sistema se genera mediante una instrucción del ensamblador llamada Interrupción por Software.

FUNCIONES DE LA BIOS Las funciones de la BIOS se invocan, desde los programas de usuario, ejecutando una interrupción software con un cierto valor inicial en los registros

Funciones del BIOS Las rutinas del BIOS (Basic Input/Output System) son específicas a cada computadora y las proporciona el fabricante del sistema. Contienen los manejadores por defecto para los siguientes dispositivos:

Funciones del BIOS Monitor y teclado Puerto serie Dispositivo auxiliar Reloj de tiempo real Unidades de disco

FUNCIONES DE LA BIOS INT 10h: Servicios de Vídeo (texto y gráficos). INT 11h: Informe sobre la configuración del equipo. INT 12h: Informe sobre el tamaño de la memoria convencional. INT 13h: Servicios de disco (muy elementales: pistas, sectores, etc.). INT 14h: Comunicaciones en serie. INT 15h: (AT). Funciones casette (PC) y servicios especiales del sistema INT 16h: Servicios de teclado. INT 17h: Servicios de impresora. INT 18h: Llamar a la ROM del BASIC (sólo máquinas IBM). INT 19h: Reinicialización del sistema. INT 1Ah: Servicios horarios. INT 1Fh: puntos). Apunta a la tabla de los caracteres ASCII 128-255 (8x8

FUNCIONES DEL BIOS Las rutinas del BIOS son cargadas a memoria RAM durante el proceso de iniciación del sistema y se encuentran en un archivo llamado IO.SYS o IBMBIO.COM.

Ejemplo sobre Rutinas del BIOS ;************************************************************* ; BIOS_MAC.ASM ; ; Este archivo contiene macros permiten desplegar un carácter ; a pantalla y leer un carácter del teclado. Las macros utilizan ; llamadas a las rutinas del BIOS ;************************************************************* ;************************************************************* ; APUTCH ; ; Esta macro despliega un carácter en la pantalla ; ; Parámetro: ; ; AL = carácter ;

; Regresa: ; ; Nada ;************************************************************* macro aputch mov ah, 0Eh ;; Despliega un carácter mov bh, 0 ;; en la página 0 int 10h ;; Interrupción de video endm aputch ;************************************************************* ; AGETCH ; ; Esta macro lee un carácter del teclado ; ; Parámetro: ; ; Nada ;;; ; Regresa: ; ; AH = Código de la tecla ; AL = Código ASCII del carácter ;************************************************************* macro agetch mov ah, 10h ;; Leer un carácter int 16h ;; Interrupción del teclado endm agetch

FUNCIONES DEL DOS NT 20h: Terminar programa (tal vez en desuso). INT 21h: Servicios del DOS. INT 22h: Control de finalización de programas. INT 23h: Tratamiento de Ctrl-C. INT 24h: Tratamiento de errores críticos. INT 25h: Lectura absoluta de disco (sectores lógicos). INT 26h: Escritura absoluta en disco (sectores lógicos). INT 27h: Terminar dejando residente el programa (en desuso). INT 28h: Idle (ejecutada cuando el ordenador está inactivo). INT 29h: Impresión rápida en pantalla (no tanto). INT 2Ah: Red local MS NET. INT 2Bh-2Dh: Uso interno del DOS. INT 2Eh: Procesos Batch. INT 2Fh: Interrupción Multiplex. INT 30h-31h: Compatibilidad CP/M-80. INT 32h: Reservada.

Vectores De Interrupción

Ejemplo sobre Rutinas del DOS ;************************************************************* ; DOS_MAC.ASM ; ; Este archivo contiene macros que permiten desplegar un ; carácter a pantalla y leer un carácter del teclado. Las ; macros utilizan llamadas a las rutinas del DOS ;************************************************************* ;************************************************************* ; APUTCHAR ; ; Esta macro despliega un carácter en la pantalla ; ; Parámetro: ; ; DL = carácter ; ; Regresa: ; ; Nada ;*************************************************************

1.4.- Estructura de un programa en ensamblador. Un programa en lenguaje ensamblador estará formado por una secuencia de sentencias. Cada sentencia ocupa una sola línea y tiene la siguiente estructura: etiqueta] [operación] [operandos] [;comentarios]

Los cuatro campos de una sentencia son opcionales, si no aparece ninguno de ellos (una línea en blanco) tendríamos una sentencia vacía. Estructura de un programa en ensamblador. Las sentencias se dividen en dos tipos: * Instrucciones: Estas sentencias representan órdenes al procesador y tras el proceso de compilación generan código ejecutable. * Directivas: Estas sentencias dirigen el proceso de compilación o construcción del programa ejecutable. No generan código ejecutable. Normalmente se utilizan para aumentar la legibilidad del código fuente.

Estructura de un fichero en lenguaje ensamblador La estructura a seguir se muestra a continuación: escala EQU 1000 ;Definición de constantes simbólicas ORIGEN 7F40h ;Definición del origen de carga del programa INICIO ini ;Definición de la etiqueta que marca la ;primera instrucción a ejecutar del programa.pila 100h ;Definición de la pila.datos ;Definición de los datos del programa dato1 VALOR 12h.CODIGO ;Definición del código del programa INI: MOV R5, R4 FIN

Estructura de un fichero en lenguaje ensamblador Los ficheros de código fuente escritos en lenguaje ensamblador se organizan en líneas. Cada una de las líneas del fichero puede contener una directiva, una instrucción o ambas cosas a la vez en los casos en que sea posible.

No existe una convención establecida para la estructura de un programa en lenguaje ensamblador (no como sucede con otros lenguajes, como C/C++). Como regla de oro, es necesarios la declaración de dos segmentos, la de código (CODE) y la de pila (STACK). En total, hay 4 segmentos principales: Segmento de datos, Segmento de código, Segmento de pila y Segmento Extra.

Los diferentes segmentos tienen las siguientes funciones: Segmento de datos: Contiene la dirección donde inicia la declaración de variables. Aquí, escribiremos nuestras variables. Segmento de código: Contiene la dirección de inicio donde se encuentran las instrucciones del programa. Aquí, escribiremos todo el código de nuestro programa

Segmento de pila: Contiene la dirección donde se encuentra la pila. Segmento Extra: Contiene la dirección donde podemos almacenar datos extras.

TÉCNICAS DE CODIFICACIÓN EN ENSAMBLADOR: BUCLES: Inicialización de un registro(a modo de contador) al nº de vueltas del bucle Etiqueta: Primera instrucción del bucle <resto de instrucciones dentro del bucle> decrementar el contador saltar a la etiqueta si el contador es mayor que cero <instrucciones fuera del bucle>

TÉCNICAS DE CODIFICACIÓN EN ENSAMBLADOR: SALTOS CONDICIONALES: Instrucción de comparación Evaluar condición y si se cumple saltar a la etiqueta prefijada <instrucciones para el caso de no cumplirse la condición> saltar fuera del condiciona

TÉCNICAS DE CODIFICACIÓN EN ENSAMBLADOR: MACROS: Declaración: <nombre de la macro> MACRO <instrucciones de la macro> ENDM 5 Llamada: <nombre de la macro>

TÉCNICAS DE CODIFICACIÓN EN ENSAMBLADOR: SUBRUTINAS: Declaración: <nombre la de subrutina> PROC <instrucciones de la subrutina> RET <nombre de la subrutina> ENDP Llamada: CALL <nombre de la subrutina>

Llamado De Procedimientos En Ensamblador Desde C Modelos de memoria Nomenclatura de los segmentos en los programas en C

Conclusión Considerando lo mencionado, decimos que :

Bibliografía 1. Abel, Peter. Lenguaje Ensamblador y Programación para PC IBM y Compatibles. Capítulo 9 Rutinas en Ensamblador en Programas en C 171 ITSON Manuel Domitsu Kono 3. Brey, Barry B. Los microprocesadores Intel: 8086/8088, 80186, 80286, 80386 y 80486. Hispanoamericana, S. A. México. 1995. 4. Godfrey, J. Terry. Lenguaje Ensamblador para Microcomputadoras IBM para