Instrucciones Aritméticas

Documentos relacionados
Instrucciones Lógicas y Registro de Banderas

INSTRUCCIONES ARITMÉTICAS.

Instrucciones de Control de Flujo y Usos de la Pila

Introducción al EMU8086

INSTRUCCIONES LÓGICAS Y EL REGISTRO DE BANDERAS.

TAREA 1 ARITMETICA PARA BCD Y ASCII.

Tema 1. Fundamentos del lenguaje ensamblador

Tema 4. Fundamentos del ensamblador

INTRODUCCIÓN AL EMU8086.

DEBUG Y USO DE CADENAS.

Los números naturales y enteros en el 80X86 y en LAN

Conceptos de Arquitectura de Computadoras Curso 2015

Instrucciones del microprocesador

RELACIÓN DE PROBLEMAS DE LÓGICA PROGRAMADA (TEMA 4)

Asignaturas antecedentes y subsecuentes

Área Académica: Sistemas Computacionales

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

Sistemas numéricos -aritmética- Taller de programación

Arquitectura Interna del 8088

Estructura de Computadores: Tema 1. Introducción. Índice. Arquitectura del i8086

MATEMÁTICAS PARA LA COMPUTACIÓN CAPÍTULO 1. SISTEMAS NUMÉRICOS

Tema: Operaciones de Carga, Transferencia, Comparación y Aritméticas del S7-1200

Trabajo Práctico Nro 3: Assembler

EL MACROENSAMBLADOR. Objetivos específicos. Materiales y equipo. Procedimiento

Fecha de elaboración: 28 Mayo de 2010 Fecha de última actualización:

Tema: Operaciones de Carga, Transferencia, Comparación y Aritméticas del S7-1200

Instrucción De Salto Incondicional

El Diseño de un Lenguaje Máquina


Examen de teoría (5 puntos)

Estructura de Computadores (EdC-ISW-G1) Boletín 4: Programación AVR

MICROPROCESADOR

INSTITUTO TECNOLÓGICO DE CHIHUAHUA II ARQUITECTURA DE COMPUTADORAS MAESTRO: ERNESTO LEAL ALUMNOS: LUIS CARLOS BARRERA ORTIZ STHEPANIE FLORES GUILLEN

INSTITUTO TECNOLÓGICO DE CHIHUAHUA II

PROGRAMACIÓN EN ASSEMBLER SIMULADOR MSX88

ENSAMBLADOR. M.C. Laura Cuayahuitl Romero MODO DE DIRECCIONAMIENTO DIRECTO

EL EMU8086 Y EL MICROPROCESADOR 8086.

Bus de direcciones. Bus de datos

Examen de teoría (5 puntos)

5 - Lenguaje Ensamblador

Lenguajes de Interfaz

Guía práctica de estudio 06: Lenguaje binario

Examen de teoría (5 puntos)

PROBLEMAS DE ESTRUCTURA DE LOS COMPUTADORES LENGUAJE MÁQUINA Y ENSAMBLADOR

Universidad Nacional de Ingeniería Arquitectura de Maquinas I. Unidad I: Arquitectura y Programación de un Microprocesador (8086)

(2) Unidad 2. Modelo de Programación del 80x86 de Intel SISTEMAS BASADOS EN MICROPROCESADORES. Grado en Ingeniería Informática EPS - UAM

ARQUITECTURA INTERNA DEL µp8086

Examen de Laboratorio de Estructura de Computadores Septiembre 2005 I.T. Informática de Sistemas / Gestión Departamento de Automática ATC -

PROGRAMA INSTRUCCIONAL PROGRAMACION III

Circuitos Electrónicos Digitales

Uso de la herramienta de desarrollo y los modos de direccionamiento del HC12.

Organización de Computadoras. Clase 8

Examen de teoría (5 puntos)

Práctica 5 - Memoria Cache

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

PROCESAMIENTO DE LOS DATOS. Procesamiento de datos ascii a binario y de binario a ascii

Programación en lenguaje ensamblador. Instrucciones básicas. Formatos. Direccionamientos

ESTRUCTURA Y ORGANIZACIÓN DE COMPUTADORES

Organización de computadoras. Clase 2. Universidad Nacional de Quilmes. Lic. Martínez Federico

Realizar la siguiente suma y expresar el resultado en hexadecimal: Teniendo los 3 valores expresados en la misma base, podemos realizar la suma:

2º CURSO INGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN TEMA 1 - INTRODUCCIÓN JOSÉ GARCÍA RODRÍGUEZ JOSÉ ANTONIO SERRA PÉREZ

Tema 1: Introducción a los Computadores

Carrera: SCM Participantes. Representantes de la academia de sistemas y computación de los Institutos Tecnológicos.

Tema 6. Segmentación y modos de direccionamiento

CONJUNTO DE INSTRUCCIONES µp8086

Transferir datos por medio del puerto paralelo utilizando un lenguaje de bajo nivel. (Lenguaje ensamblador auxiliándose del macroensamblador MASM)

Unidad II: Programación básica

Arquitectura (Procesador familia 80 x 86 )

Tema 2: Segmentación y modos de direccionamiento

ITT-327-T Microprocesadores

Estructura de Computadores. Problemas de Instrucciones y Direccionamientos

Un. VIII. Generación de Código Objeto

BENEMÉRITA UNIVERSIDAD AUTÓNOMA DE PUEBLA FACULTAD CIENCIAS DE LA COMPUTACIÓN

Tema: Lenguaje ensamblador embebido

MATEMÁTICAS PARA LA COMPUTACIÓN CAPÍTULO 1. SISTEMAS NUMÉRICOS

Circuitos Digitales II 5323 [Presentación del curso] Jorge Edson Loya Hernández

Tema 2: Introducción a los Computadores

BENEMÉRITA UNIVERSIDAD AUTÓNOMA DE PUEBLA FACULTAD CIENCIAS DE LA COMPUTACIÓN

Universidad Euskal Herriko del País Vasco Unibertsitatea Arquitectura de Computadores I Sistema de memoria 1

Tema 1: Introducción a los Computadores

Funciones y Datos en Intel 8086

LABORATORIO DE SISTEMAS MICROPROCESADOS PRÁCTICA N 2 ALGORITMOS ADICIONALES. Revisar algunos algoritmos que se emplearan en prácticas futuras.

8.4. El software en los μprocesadores

Resumen de las instrucciones del 8086/8088

Guía práctica de estudio 06: Lenguaje binario

LECTURAS SOBRE COMPUTADORAS DIGITALES LECTURA Nº4 MATERIA: ARQUITECTURA DE LAS COMPUTADORAS 1.- REPERTORIO DE INSTRUCCIONES DE LA PETICOMPUTADORA

Representación digital de la información

Asignaturas antecedentes y subsecuentes

PROGRAMA ANALÍTICO DE ASIGNATURA

Universidad De San Buenaventura CALI Guía de Métodos Numéricos Ingeniería Multimedia

PRÁCTICA # 2. 0 Direcciones 1 Dirección 2 Direcciones 3 Direcciones

Este método de diseño de algoritmos en etapas, yendo de los conceptos generales a los de detalle, se conoce como método descendente (top-down).

Nombre del documento Fecha de elaboración Código Versión. Tecnología en Electrónica. Microprocesadores y Microcontroladores. Aplicada de la Ingeniería

INFORMÁTICA INDUSTRIAL. 3º INGENIERÍA TÉCNICA ELECTRÓNICA PRÁCTICA 1: ESTRUCTURA INTERNA DE UNA CPU.

Examen de teoría (5 puntos)

Transcripción:

1 Instrucciones Aritméticas Facultad: Estudios Tecnologicos. Escuela: Electrónica Asignatura: Microprocesadores Objetivo General Analizar la forma en que se ejecutan algunas instrucciones aritméticas y de manejo de la PILA. Objetivos Específicos Observar el uso de algunas instrucciones aritméticas y las banderas que son afectadas. Identificar las banderas que afecta cada instrucción observada. Utilizar correctamente los registros del microprocesador al realizar operaciones aritméticas, tanto de 8 bits como de 16 bits. Analizar detenidamente el proceso de cada operación. Materiales y equipos Guía de laboratorio Computadora PC con el programa EMU8086 Procedimiento 1) Ejecute el programa emulador de microprocesadores EMU8086, haciendo doble clic en el icono del escritorio. 2) Cree un nuevo documento tipo COM ) Analice el PRIMER PROGRAMA, note que al inicio se declaran los datos. Con qué datos se realizarán las operaciones y cuales serán los resultados? Dónde se almacena el resultado al final de las operaciones?

2 PRIMER PROGRAMA #make_com# org 100h INICIO byte1 equ 125 byte2 equ 150 word1 equ 20Ah word2 equ 598h AL = byte1 AL = AL + byte2 M[011Eh] = AL mov al, byte1 ;suma de 2 números de 1 byte add al, byte2 mov [011Eh], al AX = word1 AX = AX +word2 M[011Fh] = AX FIN END mov ax, word1 ;suma de 2 números de 2 byte add ax, word2 mov [011Fh], ax ret 4) Digite y emule el programa 5) Antes de ejecutar el programa tome nota del contenido almacenado en las direcciones 011Eh, 011Fh y 0120h en la TABLA 1, también del estado de las banderas. 6) Ejecute paso a paso el programa, anotando la información solicitada en la TABLA 1, observando el resultado de las operaciones y el estado de las banderas Concuerda el resultado lo que usted esperaba? MOMENTO Inicio Después del 1ª suma Antes de la 2ª suma Después de la 2ª suma Después del último MOV DIRECCIONES BANDERAS 011Eh 011Fh 0120h O S Z A P C TABLA 1 7) Cargue nuevamente el programa e invierta manualmente el estado del acarreo. 8) Ejecute paso a paso hasta la primera suma. Cambió el resultado de la operación? 9) Continúe ejecutando el programa hasta la segunda suma Se dio algún cambio?

10) Modifique el código fuente sustituyendo las instrucciones ADD por ADC y emule nuevamente el programa. 11) Repita desde el paso 7 y compare con los resultados previos. Qué resultados se modificaron?, qué parte no?, por qué cree que se dieron esos cambios específicos en los resultados? 12) Modifique el programa para que funcione como al inicio, pero cambie los datos con los siguientes valores: byte1 equ 9Dh byte2 equ 8h word1 equ 598 word2 equ -598 1) Corra a pasos el programa observando la ejecución de cada instrucción y el estado de las banderas. Cuál fue el resultado de las operaciones?, Cómo reaccionaron las banderas? y por qué así y no de otra manera? 14) Analice el SEGUNDO PROGRAMA, dónde se almacena el resultado de las operaciones? cuál es el resultado de las mismas? SEGUNDO PROGRAMA #make_com# org 100h byte1 byte2 word1 word2 equ 80 equ 69 equ 2647 equ 25 mov cl, byte1 ;resta de 2 números de 1 byte sub cl, byte2 mov dx, word1 ;resta de 2 números de 2 byte sub dx, word2

4 INICIO END ret CL = byte1 CL = CL + byte2 DX = word1 DX = DX - word2 FIN 15) Digite y emule el programa tomando nota del valor de los minuendos y sustraendos (en formato hexadecimal) con que se realizarán las operaciones en la TABLA 2. 16) Ejecute paso a paso el programa, observando los resultados de las operaciones y el estado de las banderas. Anote estos valores en la TABLA 2. 17) Modifique el programa para que se invierta el orden de la operación, de forma que el minuendo pasa a ser sustraendo y viceversa. Repita el paso anterior tomando nota en la segunda fila de la TABLA 2. 18) Repita los pasos 16 y 17, pero esta vez active manualmente el acarreo antes de cada resta observa cambios en las operaciones? 19) Cambie el programa para que funcione como al principio. 20) Sustituya las instrucciones SUB por SBB y repita los pasos anteriores. Complete la TABLA 2. Qué diferencias nota entre la ejecución de la instrucción SUB y SBB? Instrucción Prueba Minuendo Sustraendo Diferencia O S Z A P C SUB SBB 1º 2º º 4º TABLA 2 21) Analice el TERCER PROGRAMA qué registros están involucrados en el proceso? qué datos se van a operar? dónde se almacenará el resultado?

5 TERCER PROGRAMA INICIO #make_com# org 100h INICIO: AH = AAh mov ah, 0AAh ;multiplica 2 números de 1 byte AL = 0FFh mov al, 0FFh CL = 06h AX = (AL) X (CL) FIN END mov cl, 06 mul cl ret 22) Digite y emule el TERCER PROGRAMA 2) Ejecute paso a paso, analizando el proceso. Anote los resultados en la primera fila de la TABLA Coinciden los resultados con lo que esperaba? Instrucción Dato Multiplicando Multiplicador Producto MUL 06-06 06 IMUL -06 TABLA

6 24) Modifique el dato de CL colocando -06 y ejecute nuevamente el programa. Anote los resultados en la TABLA. 25) Cambien la instrucción MUL por IMUL y el dato -06 por 06. 26) Ejecute el programa y anote los resultados. 27) Cambie el dato por -06, ejecute nuevamente y anote los resultados 28) Analice el CUARTO PROGRAMA qué registros están involucrados en el proceso? qué datos se van a operar? dónde se almacenará el resultado? 29) Realice el mismo procedimiento del TRECER PROGRAMA, pero ahora el dato que será cambiado es 05 y la operación DIV por IDIV. Anote sus resultados en la TABLA 4. CUARTO PROGRAMA INICIO AX = 12 #make_com# org 100h INICIO: mov ax, 12 ;multiplica 2 números de 1 byte CL = 05 mov cl, 05 ;Dato AH(res),AL(cos) = (AL) (CL) div cl FIN END ret Instrucción Dato Dividendo Divisor Cociente Residuo DIV 05-05 05 IDIV -05 TABLA 4 0) Cambie el dato por 00h y ejecute el programa qué ocurrió?

7 Análisis de resultados a) Primer programa Tomando en cuenta los datos particulares de cada operación explique el porque de la activación o desactivación de las banderas O, S, Z, C y A. Explique porque los resultados de las operaciones cambiaron al usar ADC en lugar de ADD. Utilice cálculos para fundamentar su explicación. b) Segundo programa Al ejecutar una resta las banderas C y A reaccionan diferente si el minuendo es mayor o menor al sustraendo, explique el porque basándose en el concepto de préstamo. Explique porque los resultados de las operaciones cambiaron al usar SBB en lugar de SUB. Utilice cálculos para fundamentar su explicación. c) Tercer programa Cómo se especifica en una instrucción de multiplicación que se desea trabajar con números de un byte? En qué registros se almacenan los datos y el resultado de una multiplicación de un byte? Explique porque los resultados de las operaciones cambiaron al usar IMUL en lugar de MUL. Utilice cálculos para fundamentar su explicación. d) Cuarto programa Cómo se especifica en una instrucción de división que se desea trabajar con números de un byte? En qué registros se almacenan los datos y el resultado de una división de un byte? Explique porque los resultados de las operaciones cambiaron al usar IDIV en lugar de DIV. Utilice cálculos para fundamentar su explicación. Por qué la última modificación del programa generó un error en la ejecución? Investigación complementaria Compare el funcionamiento de la directiva EQU con DB. Investigue como se puede realizar una multiplicación de dos números de dos bytes cada uno. Investigue como se puede realizar una división de dos números de dos bytes cada uno. Diseñe dos flujo-gramas que representen el proceso para sumar dos números de 4 bytes cada uno, en el primero se trabajará con registros de 16 bits y en el segundo de 8 bits. Bibliografía Brey, B. B. Los Microprocesadores Intel. 8086 / 8088, 80186, 80286, 8086 y 80486. Arquitectura, programación e interfaces, Prentice Hall, México DF, 1995 Biblioteca UDB 001.6404 B847 1997

8 Godfrey, T. Lenguaje Ensamblador para Microcomputadoras IBM : Para Principiantes y Avanzados, Prentice Hall, México DF, 1991 1 Biblioteca UDB 005.16 G577 1991 Puede consultar el material en línea del EMU8086 sobre los temas de esta actividad. Se recomiendan: Arithmetic and logic instructions, http://www.emu8086.com/assembly_language_tutorial_assembler_reference/a sm_tutorial_06.html