Laboratorio 1 Entorno de desarrollo y subrutinas

Documentos relacionados
Ejemplo del uso de las subrutinas

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

Arquitectura (Procesador familia 80 x 86 )

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

ORGANIZACIÓN DE LA MEMORIA

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

Computación I Sistemas de Numeración. Curso 2010 Facultad de Ingeniería Universidad de la República

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

Fundamentos de Programación Visual Basic

ENSAMBLADOR DE ARCHIVO TASM MASM NASM GAS. Características de un Ensamblador de Archivo

ESCUELA POLITÉCNICA NACIONAL

Computación I Sistemas de Numeración. Curso 2015 Facultad de Ingeniería Universidad de la República

TEMA II SISTEMAS DE NUMERACIÓN USUALES EN INFORMÁTICA.

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

INSTITUTO POLITECNICO NACIONAL CENTRO DE ESTUDIOS CIENTIFICOS Y TECNOLOGICOS " GONZALO VAZQUEZ VELA "

TEMA V SISTEMAS DE NUMERACIÓN

0.1 SISTEMA BINARIO DE NUMERACIÓN

Conceptos de Arquitectura de Computadoras Curso 2015

LECCIÓN 14: DISEÑO DE COMPUTADORES MEDIANTE MICROPROGRAMACION

Práctica 1 Introducción al Transistor BJT Región de Corte Saturación Aplicaciones

Práctica 1 Transistor BJT Región de Corte Saturación Aplicaciones

Unidad Didáctica Electrónica Digital 4º ESO

Relación de Problemas I

DISPLAY LCD MICROPROCESADORES

Universidad Autónoma del Estado de México Facultad de Medicina

Universidad Nacional de Ingeniería. Trabajo de Introducción a la programación

28/09/2012. Interfaz con Dispositivos de Salida. Interfaz con Dispositivos de Entrada. Port Mapped. Memory mapped. Interfaz con Dispositivos I/O

El Computador Simple 2010 (CS2010)

Representación de datos y aritmética básica en sistemas digitales

SISTEMAS DE NUMERACION

Representación de datos y aritmética básica en sistemas digitales

SISTEMAS NUMERICOS. Ing. Rudy Alberto Bravo

Laboratorio 02: Ejercicios de programación en C


Funcionamiento de la Pila (o stack)

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

CONVERSIONES CONVERSIÓN DE BINARIO A: Binario a Octal: se agrupan de a 3 bits y luego se lee el número , B 635,15 O 6 3 5, 1 5 O

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

ÍNDICE CAPÍTULO 1 FUNDAMENTOS DE LOS MICROCONTROLADORES

TAREA 1 ARITMETICA PARA BCD Y ASCII.

Materia Introducción a la Informática

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

Matemática de redes Representación binaria de datos Bits y bytes

Distinguir las diferentes estructuras de repetición utilizadas en problemas con bucles: mientras, repetir mientras, para.

UNIDAD 3 ARQUITECTURA DEL Z80. Microprocesadores Otoño 2011

UNIVERSIDAD EMILIANO ZAPATA

Tema 4. Operadores y Expresiones

DES: Programa(s) Educativo(s): Tipo de materia: Clave de la materia: Semestre: Área en plan de estudios:

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

Estructura de Datos. Unidad I Tipos de Datos

CICLO ESCOLAR JULIO DICIEMBRE

Bucles: o Bucles infinitos o Bucles finitos o Bucles anidados Medir tiempos con MPLAB Ejemplos y ejercicios

Conceptos y definiciones básicos en computación

PROBLEMA VHDL. 7 dig1. dig2. Entradas : Señales a[3..0] y b [3..0] en código GRAY Salida : Señales Dig1[6..0] y Dig2[6..0] para los visualizadores

Sistemas Operativos. IES Pedro Espinosa. Relación de ejercicios Tema 1: Conceptos básicos de informática

EJEMPLOS Y EJERCICIOS

SISTEMAS NUMÉRICOS. Conocer los diferentes sistemas numéricos y su importancia en la informática y la computación

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

Clase 1 Sistemas de numeración

BIBLIOGRAFIA TEORIA DE CIRCUITOSY DISPOSOTIVOS BOYLESTAD ELECTRONICA DIGITAL TOKHEIM SISTEMAS DIGITALES TOCCI

Control de Flujo. Estructuras de Control! Experiencia Educativa de Algorítmica CONTROL DE FLUJO

B) Averiguar si cada una de las siguientes ecuaciones corresponde a algún sistema de numeración, en tal caso indicar a cual.

Arquitectura de Computadoras

REPRESENTACION DE LA INFORMACION

Estructura y Tecnología de Computadores. Módulo C. Arquitectura del procesador. Tema 4. Modos de direccionamiento y tipos de datos

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

SISTEMAS DE NUMERACIÓN.

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

GUIA 2: Repaso sobre uso de C#. Funciones, métodos y arreglos.

Entorno de Ejecución del Procesador Intel Pentium

Fundamentos de Informática E.U.P. Universidad de Sevilla

Programación Estructurada

Aritmética para 6.º grado (con QuickTables)

Tema 1. SISTEMAS DE NUMERACION

SISTEMAS Y CÓDIGOS DE NUMERACIÓN

PROBLEMAS TECNOLOGÍA INDUSTRIAL II. CONTROL DIGITAL

Práctica de laboratorio Uso de la Calculadora de Windows con direcciones de red

MEMORIA EJERCICIO 1 EJERCICIO 2

Sistemas de Numeración. Códigos

P L A N I F I C A C I O N

Capitulo 12. Tira de bits

SISTEMAS DE NUMERACIÓN

Informática I. Software - Algoritmo. Alejandro Furfaro

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

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

Por ejemplo convertir el número 131 en binario se realiza lo siguiente: Ahora para convertir de un binario a decimal se hace lo siguiente:

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

Rutinas de programación

Práctica de laboratorio Uso de la Calculadora de Windows con direcciones de red. Presentado por: Daniel Carmona Gómez. Maurent Zapata Zumaque

MODBUS TCP. 1. Especificaciones 2. Códigos de función 3. Respuesta de error 4. Contadores de estado 5. Programa PLC y ejemplos CS1W-ETN21 CJ1W-ETN21

Universidad Tecnológica Nacional Facultad Regional Mendoza TRABAJO FINAL DE LA CARRERA INGENIERIA EN ELECTRONICA

Asignaturas antecedentes y subsecuentes

5 centenas + 2 decenas + 8 unidades, es decir: = 528

PRONTUARIO I. INFORMACIÓN GENERAL

Álgebra Booleana y Simplificación Lógica

EL RELOJ DE TIEMPO REAL DEL PLC S7-200

Introducción a los Microprocesadores Facultad de Ingeniería UDELAR 2014

1.- Sistemas Numéricos 2.- Diferencia entre señal analógica y Digital 3.- Postulados básicos del Algebra de Boole

Capítulo 5. Los números reales y sus representaciones Pearson Education, Inc. Diapositiva 5-5-1

Instrucciones de Control de Flujo y Usos de la Pila

Transcripción:

Laboratorio 1 Entorno de desarrollo y subrutinas Objetivos Dar los primeros pasos con el uso de la placa. Desarrollar subrutinas que acceden a puertos de entrada y salida (E/S). Validar subrutinas básicas para prácticas siguientes. Comprender los ciclos de máquina involucrados en la ejecución de una subrutina. Descripción General Requerimiento previo: Para un correcto aprovechamiento de la práctica se debe realizar previamente el paso 2.2 Trabajando con un sistema real cargado en la placa DE0 de la Guía para las herramientas del Laboratorio. Al finalizar la presente práctica se contará con un programa que despliega en los display 7 segmentos de la placa una cuenta de segundos y centésimas de segundos. La cuenta no se decrementará automáticamente, sino manualmente manipulando los pulsadores. Este programa estará estructurado en subrutinas que hacen uso unas de otras, esto permitirá partir el problema en partes más sencillas de resolver y contar con subrutinas auxiliares que serán útiles en siguientes prácticas. El siguiente esquema muestra el hardware disponible en la placa. Si bien el sistema cuenta con más puertos y periféricos, solo se ilustran las partes necesarias para llevar adelante esta práctica. En el anexo 3 de la guía se encuentra los mapas de memoria y puertos del sistema. Es responsabilidad del programa del usuario inicializar el puntero al stack (SP) para que el stack esté contenido en la memoria disponible para el usuario (0xB000 a 0xFFFF). Se sugiere utilizar el área más alta de la memoria. Práctica 1 ver. 2017-03-20 Pag. 1/7

Subrutinas hexa7seg Descripción: Subrutina que convierte un número de cuatro bits a la representación en un display de 7 segmentos del dígito hexadecimal correspondiente (0-9, A-F). Parámetros: recibe en los cuatro bits menos significativos del acumulador (registro A) el número a convertir y devuelve en el acumulador el número convertido a 7 segmentos con el punto decimal apagado. Preserva todos los registros salvo A y F. Ejemplo: recibe A= 0x01 y devuelve A= 11111001B Prueba: Para la prueba de la subrutina se sugiere realizar un programa que implemente un bucle infinito donde se leen los switches[3..0] hacia el acumulador, se invoca la subrutina hexa7seg y se escribe el resultado de la conversión en el dígito menos significativo (HEX0) de los display 7 segmentos. Notas: La correspondencia entre bits del byte y los segmentos del display se encuentran en el anexo 3 de la guía. Se sugiere utilizar una tabla para la conversión hexa a 7 segmentos. A continuación se da el código de la subrutina y el contenido de la tabla para los primeros valores. Se supone que el comienzo de la tabla está alineado al comienzo de una página de 256 posiciones en memoria, o dicho de otra forma que el byte bajo de la dirección tab_h7s vale 0. tab_h7s: ; _gfedcba db 11000000B ; 0 db 11111001B ; 1 db 10100100B ; 2 db 10110000B ; 3 db 10011001B ; 4 db... ; 5 db... ; 6 db... ; 7 db... ; 8 db... ; 9 db... ; A db... ; b db... ; c db... ; d db... ; E db... ; F hexa7seg: push hl ld hl, tab_h7s and 0x0f ld l, a ld a, (hl) pop hl ret Práctica 1 ver. 2017-03-20 Pag. 2/7

pbcda7seg Descripción: Subrutina que convierte un BCD empaquetado de 2 dígitos a 7 segmentos 2 dígitos. Parámetros: recibe en A los dos dígitos en BCD empaquetado y devuelve en el par de registros BC los 2 dígitos en 7 segmentos con el punto apagado (en B el más significativo y en C el menos significativo). Preserva todos los registros salvo A, F, B y C. Ejemplo: recibe A= 0x01 y devuelve B=11000000B y C= 11111001B Prueba: Para la prueba de la subrutina se sugiere realizar un programa que implemente un bucle infinito donde se leen 2 dígitos BCD empaquetado de los switches[7..0] hacia el acumulador, se invoca la subrutina pbcda7seg y se escribe el resultado de la conversión en los 2 dígitos menos significativos de los display 7 segmentos HEX1 y HEX0. Notas: Observar que los dígitos BCD coinciden con los 10 primeros dígitos hexadecimales, por lo que extrayendo los dígitos del BCD empaquetado puede utilizarse la rutina hexa7seg para la conversión de cada dígito. binapbcd Descripción: Subrutina que convierte a BCD empaquetado de 2 dígitos un número menor o igual a 99 codificado en binario. Parámetros: recibe en A el número en binario y devuelve en A los dos dígitos en BCD empaquetado. Preserva todos los registros salvo A y F. Ejemplo: recibe A= 0x0F= 00001111B y devuelve A=00010101B Prueba: Para la prueba de la subrutina se sugiere realizar un programa que implemente un bucle infinito donde se lee un número binario de los switches y se utilizan las subrutinas anteriores para mostrarlo en los 2 dígitos menos significativos del display 7 segmentos (HEX1 y HEX0). Notas: Para la representación BCD empaquetado del binario, es necesario conocer el valor de las decenas y unidades del número. Una forma de determinar estos valores es calcular el cociente y el resto de la división entera por 10. Para ello se puede contar cuántas veces se debe restar 10 hasta que el resultado sea negativo. despreloj Descripción: Subrutina que modifica el estado de los display 7 segmentos de acuerdo al contenido de variables en memoria. Parámetros: recibe en IX el puntero a memoria: lugar nombre descripción IX+0 seg segundos codificados en binario IX+1 cen centésimas de segundo codificados en binario IX+2 flagpd bandera que puede tomar los valores 00H y FFH Práctica 1 ver. 2017-03-20 Pag. 3/7

La subrutina despliega el contenido de las variables preservando registros: dígitos 7 segmentos HEX3, HEX2: contenido de seg dígitos 7 segmentos HEX1, HEX0: contenido de cen los puntos decimales de los display 7 segmentos: según el valor de flagpd (00H encendidos, FFH apagados). Prueba: Para la prueba de la subrutina se sugiere realizar un programa que inicialice las variables y luego invoque en un bucle infinito la subrutina despreloj. Los valores de memoria se modificarán utilizando el debugger para probar los diferentes valores posibles. decreloj Descripción: Subrutina que cada vez que se invoca decrementa en forma anidada centésimas de segundo y segundos. Cada vez que es invocada decrementa 10 centésimas de segundo. Cada vez que se decremente un segundo se debe complementar una bandera. El decremento debe saturar en 0. Parámetros: recibe en IX el puntero a memoria: lugar nombre descripción IX+0 seg segundos codificados en binario IX+1 cen centésimas de segundo codificados en binario IX+2 flagpd bandera que puede tomar los valores 0x00 y 0xFF Incrementa las variables preservando todos registros. Prueba: Se debe implementar un programa principal con el siguiente pseudocódigo: Inicializo sistema Loop: Espero pulsador 2 Invoco decreloj() Invoco despreloj() Espero pulsador 1 Vuelvo a Loop Práctica 1 ver. 2017-03-20 Pag. 4/7

Ensamblado, ciclos y tiempo de ejecución Ensamblado Ensamblar el siguiente código escribiendo la tabla de símbolos y completando los espacios en blanco de la tabla (ignorar los casilleros tachados con XXXXXXX ): CTE16bit equ 0xDD21.org 0x0E00 ;relativo a comienzo del programa en 0xB000 espero: push AF push BC ld BC, CTE16bit loop: dec BC ld A,B or C jp NZ, loop pop BC pop AF ret Contador de posiciones Instrucción Código de máquina Nro de Bytes Ciclos M Ciclos T 0xBE00 push AF 1111 0101 1 M1, WR MEM, WR MEM 11T 0xBE01 push BC 1100 0101 1 M1, WR MEM, WR MEM 0xBE02 ld BC, CTE16bit 0xBE05 dec BC XXXXXXXXXXX XXXXXXXXXXX ld A,B XXXXXXXXXXX XXXXXXXXXXX or C XXXXXXXXXXX XXXXXXXXXXX jp NZ, loop pop BC pop AF XXXXXXXXXXX XXXXXXXXXXX ret XXXXXXXXXXX XXXXXXXXXXX Símbolo Valor Práctica 1 ver. 2017-03-20 Pag. 5/7

Ciclos Para cada una de las instrucciones ensambladas, llenar la tabla indicando para cada ciclo los valores que se observan en el bus de datos y de direcciones. Al comenzar a ejecutar la subrutina, el valor de los registros es: SP=0xFE00, AF=0x58AA, BC=0x057F. Instrucción:push BC (ejemplo) CICLO M1 WR MEM WR MEM BUS DIRECCIONES 0xBE01 0xFDFD 0xFDFC BUS DATOS 1100 0101 0x05 0x7F Instrucción: ld BC, CTE16bit CICLO BUS DIRECCIONES BUS DATOS Instrucción: jp NZ, loop CICLO BUS DIRECCIONES BUS DATOS Instrucción: pop BC CICLO BUS DIRECCIONES BUS DATOS Práctica 1 ver. 2017-03-20 Pag. 6/7

Tiempo de ejecución Determinar un nuevo valor para la constante CTE16bit de forma que la duración de la subrutina desde que se ejecuta la primera instrucción hasta que se ejecuta ret sea lo más próximo posible a 5 ms (milisegundos). Tener en cuenta que la frecuencia del reloj es 50MHz. Informe Deberá entregarse un informe impreso en secretaria del IIE antes del lunes 3 de abril a las 12:30hs conteniendo el pseudocódigo o diagrama de flujo y el código impreso de todas las subrutinas y programas de prueba. También debe incluirse el ejercicio de ensamblado, ciclos y tiempo de ejecución. Cada estudiante deberá llevar registro de las horas dedicadas a la práctica. Se les solicitará que ingresen esa información a través de la página del curso. El día de la evaluación el grupo deberá presentarse a la hora establecida en el laboratorio de software del Instituto de Ingeniería Eléctrica. Además se deberán traer la placa DE0 ( y sus accesorios) y un "pen drive usb" con todos los archivos. Práctica 1 ver. 2017-03-20 Pag. 7/7