Universidad Nacional de Ingeniería Arquitectura de Maquinas I. Unidad II: Arquitectura y Programacion de un Microprocesador (80X86)

Documentos relacionados
Práctica 2. Registros y posiciones de memoria

Tema 5.1: Presentación de datos en pantalla

Conceptos de Arquitectura de Computadoras Curso 2015

62/8&,21(6$/(;$0(1'( /$%25$725,2'((6758&785$6'(/26&20387$'25(6 &8562)(%5(52

Tema 4. Lenguaje máquina y lenguaje ensamblador

Tema 5. Presentación de datos por pantalla

LENGUAJE ENSAMBLADOR DEL MICROPROCESADOR

INTRODUCCIÓN. Interrupciones.

Tema 2. Presentación de datos por pantalla. La ROM-BIOS

SISTEMAS BASADOS EN MICROPROCESADORES

Este grupo es una continuación del anterior, incluye las siguientes instrucciones:

Buses y Periféricos 2006/2007 Práctica 3. Ensamblador

Pregunta correcta= 0,3 Pregunta no contestada= 0 Pregunta incorrecta (tipo test)= -0,15

Arquitectura (Procesador familia 80 x 86 )

Objetivo. Introducción. Tema: GENERACION DE CODIGO. Compiladores, Guía 11 1

TAREA 1 ARITMETICA PARA BCD Y ASCII.

EL EMU8086 Y EL MICROPROCESADOR 8086.

Intel Arquitectura. Programación en Ensamblador Ing. Marcelo Tosini

8.4. El software en los μprocesadores

MÓDULO III PROGRAMACIÓN DEL MICROPROCESADOR

Instrucciones de Control de Flujo y Usos de la Pila

Ejercicio * N N X X X X X X X X X X X X X X X X X X X X

Tema 4. Lenguaje máquina y lenguaje ensamblador

6-REGISTROS DEL 8086 Y DEL 80286

Resumen de las instrucciones del 8086/8088

Tema 3: ASCII y operaciones de desplazamiento y lógicas

2 de septiembre de 2010 Hoja: 1 / 10. Solamente existe una opción válida en las preguntas de respuesta múltiple.

Iniciación del mouse El servicio utilizado es el 00, este servicio inicializa el controlador del mouse como sigue:

Intel 8086 modelo básico (primera parte) Registros:

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

[etiqueta:] REP MOVSn

Asignatura: ASSEMBLER INF-153 LABORATORIO 1

PRACTICA #1. Aprender a programar una interrupción software empleando C y/o Ensamblador.

EJEMPLOS EN ENSAMBLADOR

LENGUAJE ENSAMBLADOR PRÁCTICA 11 PRÁCTICA 11 CUATRO OPERACIONES FUNDAMENTALES EN NÚMEROS DE 8 BYTES

Práctica 4. Lenguaje máquina y lenguaje ensamblador

Tema 4: Lenguaje máquina - Lenguaje ensamblador

Ensamblador. Introducción. Dpto. Física y Arquitectura de Computadores. Universidad Miguel Hernandez

2^10 2^9 2^8 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0 SUMA

Práctica 1. Introducción a la programación en ensamblador

Arquitectura intel Preámbulo de OSO para alumnos formados en el procesador MIPS. Asignatura Sistemas Operativos Murcia abril de 2005

SISTEMAS BASADOS EN MICROPROCESADORES

Arquitectura de Computadores II 8086 Parte II

Guía 01: Sistemas Numéricos

Relación de Problemas I

P1.- Para facilitar la tarea, suponemos definido en el segmento de datos lo siguiente:

Tema: Microprocesadores

Todos los comandos de DEBUG se invocan usando una sola letra y son los siguientes:

Contenido. Conjunto de Instrucciones. Formato de la Instrucción. Instrucciones de 1 byte. Formato de la Instrucción 28/09/2011

Tema 9 Periféricos de Entrada

Operaciones para Pantalla II

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

Programación Avanzada en Lenguaje Ensamblador

SISTEMAS BASADOS EN MICROPROCESADOR 2º Grado Ingeniería Informática (EPS UAM) EXAMEN FINAL EXTRAORDINARIO JULIO 2013 ENUNCIADO DEL PROBLEMA

Objetivos de la sesión. Aplicación de consola 7/30/11. Código con que se inicia un programa en Visual C# (aplicación de consola)

El nivel ISA (II)! Conjunto de Instrucciones

Tema 5: La pila, las macros y los procedimientos

Fundamentos de Informática 2. Conceptos Básicos. El ordenador. Contenidos. El ordenador. El ordenador. El ordenador. Tema 2.

Nombre del módulo: Instalación de Sistemas Microprocesados. Guía sobre Programación en Ensamblador usando Emulador (emu8086)

Práctica 3. Paso de parámetros entre subrutinas. 3. Consideraciones sobre el paso de parámetros

Instrucción De Salto Incondicional

Introducción al NASM. Convenciones de colores

LABORATORIOS DE: DISPOSITIVOS DE ALMACENAMIENTO Y DE ENTRADA/SALIDA. MEMORIAS Y PERIFÉRICOS. PRÁCTICA #9 EL RATÓN DE UNA COMPUTADORA

ISA (Instruction Set Architecture) Arquitectura del conjunto de instrucciones

Práctica 4. Organización del Computador 1 12 de septiembre de Algunas consideraciones preliminares:

MANEJO DEL MOUSE EN LENGUAJE C++

Lección 2 Introducción al lenguaje C

1.2.- EL MICROPROCESADOR.

Trabajo Práctico Nro 3: Assembler

PRONTUARIO I. INFORMACIÓN GENERAL

ARQUITECTURA DEL MICROPROCESADOR 8086

INSTRUCCIONES ARITMÉTICAS.

12 símbolos (13 si se incluye el espacio en blanco)

DISPLAY LCD MICROPROCESADORES

Apellidos Nombre DNI

Modulo LCD MODULO LCD

Departamento de Sistemas e Informática

Mod. I, Unid. 1, Obj. 1 CRITERIO DE DOMINIO 1/1

Introducción al ensamblador 80x86

Ingeniería en Sistemas. Sistemas Operativos. Trabajo Práctico: Repaso de Interrupciones, direccionamiento de memoria y registros del procesador.

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

ESCUELA POLITÉCNICA SUPERIOR PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF

Ciclos de máquina. Otro ejemplo: decremento de un registro par (donde rp = HL, DE, BC, SP) DCX rp

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

Práctica 3: El teclado del PC

LENGUAJE ENSAMBLADOR PRÁCTICA 16 PRÁCTICA 16

La arquitectura del 8086/8088

Periféricos Práctica 4: CD-Audio

EL TECLADO Y SUS PARTES

COMANDOS EN LENGUAJE DE PROGRAMACIÓN BASIC

Organización de Computadoras. Clase 2

13/10/2013. Clase 02: Sistemas de Numeración. Sistemas Digitales y Arquitectura de Computadoras. Ing. Christian Lezama Cuellar.

UNIVERSIDAD TECNOLÓGICA NACIONAL FACULTAD REGIONAL CÓRDOBA EL LENGUAJE DE LOS DATOS EN LA PC Y SU FORMA DE ALMACENAMIENTO

Práctica Nº 4 Entorno de Programación

ESTRUCTURA DE COMPUTADORES I (Capítulo 1: Estructura elemental de la memoria) 1/6 1-ESTRUCTURA ELEMENTAL DE LA MEMORIA

Principios de Computadoras II

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

SISTEMAS BASADOS EN MICROPROCESADORES

En este artículo vamos a conocer los tipos de datos que podemos manejar programando en C.

Parámetro de entrada. Un parámetro pasado del procedimiento que hace la llamada al procedimiento invocado.

Transcripción:

Universidad Nacional de Ingeniería Arquitectura de Maquinas I Unidad II: Arquitectura y Programacion de un Microprocesador (80X86) Arq. de Computadora I Ing. Carlos Ortega H. 1

Interrupciones FUNCIÓN INT 21 (AH)=1 ENTRADA DESDE EL TECLADO Esta función espera a que se digite un carácter en el teclado. Muestra el carácter en la pantalla (eco) y retorna el código ASCII en el registro AL. (AL) = carácter leído desde el teclado Ejemplo: MOV AH, 1 INT 21h ;AL = dato ASCII leído desde el teclado Arq. de Computadora I Ing. Carlos Ortega H. 2

INTERRUPCIONES DE SOFTWARE (AH)=2 SALIDA EN EL EXHIBIDOR (display) Despliega un carácter en la pantalla. Algunos caracteres tienen un significado especial: 7 CAMPANA: Suena durante un segundo 8 BACKSPACE: Mueve el cursor hacia la izquierda un carácter 9 TABULADOR: Mueve el tabulador a su próxima posición (cada 8 caracteres) 0Ah LF: Mueve el cursor a la siguiente línea 0Dh CR: Mueve el cursor al inicio de la línea corriente (DL): Carácter a desplegar en la pantalla Arq. de Computadora I Ing. Carlos Ortega H. 3

INTERRUPCIONES DE SOFTWARE Ejemplo: Desplegar un carácter MOV DL, 40 ; carácter a desplegar MOV AH, 2 INT 21h ; aparece en la posición corriente del cursor ; el carácter contenido en DL Ejemplo: Hacer que suene la campana 2 segundos MOV DL, 7 ; DL = campana MOV AH, 02 INT 21h ; 1 segundo INT 21h ; 1 segundo Arq. de Computadora I Ing. Carlos Ortega H. 4

INTERRUPCIONES DE SOFTWARE (AH)=8 ENTRADA DESDE EL TECLADO SIN ECO Lee un carácter desde el teclado, pero no se despliega en la pantalla (AL) = carácter leído desde el teclado MOV AH, 08 INT 21h ;AL = carácter (AH)=9 DESPLIEGA UNA CADENA DE CARACTERES Despliega en la pantalla la cadena apuntada por el par de registros DS:DX. Debemos marcar el fin de la cadena con el carácter $ DS:DX apuntan a la cadena que se va a desplegar Arq. de Computadora I Ing. Carlos Ortega H. 5

INTERRUPCIONES DE SOFTWARE (AH)=0A h LEE UNA CADENA Lee una cadena de caracteres desde el teclado (AH)=25h ACTIVA EL VECTOR DE INTERRUPCIÓN Activa un vector de interrupción, para que apunte a una nueva rutina (AL) = número de interrupción (AH)=35h CONSIGUE VECTOR DE INTERRUPCIÓN Consigue la dirección de la rutina de servicio para el número de interrupción dado en AL (AL) = número de interrupción Arq. de Computadora I Ing. Carlos Ortega H. 6

INTERRUPCIONES DE SOFTWARE (AH)=4Ch SALIDA AL DOS Retorna al DOS. Trabaja para ambos archivos *.com y *.Exe. Recuerde que INT 20h trabaja solamente para archivos *.com (AL) = código de retorno, normalmente activo a 0, pero se puede activar a cualquier otro número y usar los comandos del DOS, IF y ERRORLEVEL, para detectar errores Arq. de Computadora I Ing. Carlos Ortega H. 7

Ejemplos de Ensamblador EJERCICIO 1. El contenido de la localidad 0200 tiene un dato de 8 bits. Realizar un programa que coloque en la localidad de memoria 0201 el nibble (4 bits) más significativo, tomando en cuenta que el nibble menos significativo debe ser 0. SOLUCIÓN Se puede ver gráficamente el contenido de las localidades 0200 y 0201 para comprender mejor el enunciado: MASCARA: MOV AL, [200] ;mueve el contenido de la localidad 200 a AL AND AL, 0F0h ;coloca 1111 0000 en AL MOV [201], AL ;mueve el contenido de AL a la localidad 201 MOV AH, 04Ch ;mueve el contenido de 4C a AH INT 21h Arq. de Computadora I Ing. Carlos Ortega H. 8

Ejercicio 2: Realizar un programa que coloque en la localidad de memoria 202 el número menor de los contenidos en las localidades 200 y 201. Considere números sin signo. mov [200], 0004Ah mov [201], 0004Ch COMPARA: MOV AL, [200] CMP AL, [201] JNB SII MOV AL, [201] SII: MOV [202], AL MOV AH, 04CH INT 21h Arq. de Computadora I Ing. Carlos Ortega H. 9

Ejercicio 3: Sumar 2 números binarios de 24 bits y almacenar el resultado a partir de la localidad de memoria 0206h. Los bits menos significativos de los números empiezan en las localidades 0200h y 0203h. Arq. de Computadora I Ing. Carlos Ortega H. 10

mov [200], 000AAh mov [203], 000BBh mov [201], 000AAh mov [204], 000BBh mov [202], 000AAh mov [205], 000BBh SUMA: MOV AL, [200] ;mover el contenido de la localidad 200 a AL ADD AL, [203] ;sumar el contenido de la localidad 201 a AL MOV [206], AL ;mover el contenido de AL a la localidad 206 MOV AL, [201] ;mover el contenido de la localidad 201 a AL ADC AL, [204] ;sumar el contenido de la localidad 204 con AL MOV [207], AL ;mover el contenido de AL a la localidad 207 MOV AL, [202] ;mover el contenido de la localidad 202 a AL ADC AL, [205] ;sumar el contenido de la localidad 205 con AL MOV [208], AL ;mover el contenido de AL a la localidad 208 RET 8 LSB 2º BYTE 8 MSB Arq. de Computadora I Ing. Carlos Ortega H. 11

Ejercicio 4: Uso del registro CX como contador. Vamos a mover los 8 bits menos significativos del registro BL al registro BH. ROTA8: MOV BX, 043A6h ;(1) MOV CX, 00008h ;(2) OTRAVEZ: RCL BX, 1 ;(3) LOOP OTRAVEZ ;(4) MOV AH, 04Ch ;(5) INT 21h ;(6) Arq. de Computadora I Ing. Carlos Ortega H. 12

Ejercicio 5: Calcular la suma verificación de una serie de datos. La longitud de la serie de datos está en la localidad 201h y la serie comienza en la localidad 202h. Almacenar la suma verificación en la localidad 200h. La suma verificación se forma haciendo la suma O exclusiva entre todos los números de la serie. SUGERENCIA: Utilice CX como contador. mov [201], 00018h mov [203], 00020h SUMAVERIF: MOV CH, 0 ;poner 0 en CH MOV CL, [201] ;mover el contenido de la localidad 201 a CL MOV BX, 200 ;mover el contenido de 200 a BX MOV AL, [BX] ;mover el contenido de BX a AL SUMAO: INC BX ;incrementar BX XOR AL, [BX] ;O exclusiva contenidos AL y BX DEC CX ;decrementar CX LOOP SUMAO MOV [200], AL ;mover el contenido de AL a la localidad 200 RET Arq. de Computadora I Ing. Carlos Ortega H. 13

Ejercicio 6: Calcular la suma de una serie de números de 16 bits. La longitud de la serie está en la localidad de memoria 0202 y la serie empieza en la localidad de memoria 0203. Almacenar la suma en las localidades de memoria 0200 y 0201. Considere que la adición puede estar contenida en 16 bits INICIO: CLC MOV CH, 0 MOV CL, [202] MOV BX, 203 MOV AX, 0 RETORNO: ADC AX, [BX] INC BX LOOP RETORNO MOV [200], AX END Arq. de Computadora I Ing. Carlos Ortega H. 14

Arq. de Computadora I Ing. Carlos Ortega H. 15