Arquitectura 2013 Explicación 6.

Slides:



Advertisements
Presentaciones similares
PROGRAMACION ESTRUCTURADA
Advertisements

ARQUITECTURA BÁSICA DE MIPS 64
Resolución de Problemas y Algoritmos Buffer - Read & Readln
Todos los Derechos Reservados. Prohibida la reproducción por cualquier medio. Agosto Breve tutorial para conocer el programa de procesamiento de.
Datapath DLX.
Tema 3 Entrada y Salida.
LENGUAJE “C” Programación.
Manejo básico de la calculadora Casio Algebra FX 2.0 Plus
Programación III Dr. Emilio Vargas
Unidad I. Leyes de Newton
Procesador de Texto Microsoft Office Word 2007
Scis.regis.edu ● CIS 206: Software de aplicaciones para negocios Semana 7 Dr. Jesús Borrego Regis University 1.
Valor X Valor Y Punto (0,0) Coordenadas.
Fundamentos de Programación
Resolución de Problemas y Algoritmos Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Bahía Blanca - Argentina.
Laboratorio de Organización del Computador. Cómo nos podemos comunicar con un computador Add A, B CA0 Ensamblador Hexadecimal Binario.
ZAFRA VISUAL BASIC
Microprocesador (80X86) Universidad Nacional de Ingeniería
COMBINACIÓN DE COLORES
Visual basic CLASE III. Dimensionar – Crear Variables Tipos de Variables: - Integer: Números Enteros - Double: Números con punto flotante - String: Cadena.
Recursividad (2 clases) 1. Nivelación Funciones Menú Vectores String
Introducción a la Computación Miriam Jiménez Zabala.
José Eugenio Ortega Go / No go José Eugenio Ortega
MICROMUNDOS.
 Escuela de Educación Media N° 34  Curso: 3° 2°
 Todas las operaciones que se producen en el teclado y la pantalla de la computadora.  A continuación algunas funciones básicas de entrada y salida.
Programación II Sesión 3. TABLA DE CONTENIDO  Tipos de Datos en C  Delimitadores  Tipo Char  Tipo Int  Tipo Float  Tipo Double  Constantes  Operadores.
Aplicaciones, desarrollo y consejos para un uso efectivo
EL EDITOR GRAFICO DE WINDOWS
¿Cómo almacenar datos dentro del computador?
Multiplexación y encriptación
SISTEMAS DE AUTOMATIZACIÓN Y CONTROL ORIENTADO AL CONOCIMIENTO Y APLICACIÓN DE LOS SISTEMAS EMBEBIDOS SESION 04 José Luis Albites Sanabria MSc. Biomedical.
Olimpiadas Chilenas de Informática - Formación
ECLIPSE.
Tema 4 Elementos para el Desarrollo de Algoritmos
Pipelining Datapath y control.
Datapath para las instrucciones de brinco
Curso de introducción a Fundeweb
LECCIONES DE PROGRAMACION INTERMEDIAS
Fundamentos de Informática Curso 2009/2010
Datapath para las instrucciones de carga y almacenamiento (load/store)
Trabajando con las herramientas básicas del Windows
Tema 6. Conceptos básicos de programación (Clase 2)
TUTORIAL PSeint.
Manejador de interrupción (subrutina)
TIPO DE DATOS EN ACCESS 2010 TEXTO, MEMO, NUMERO, FECHA/HORA, MONEDA, AUTONUMERACION, SI/NO, OBJETO OLE, HIPERVINCULO, DATOS ADJUNTADOS, CALCULADO Y ASISTENTES.
Arquitectura 2013 Explicación 4.
Arquitectura 2013 Explicación 4.
Comprueba si una u otra condición se cumple o no.
Arquitectura 2013 Explicación 5.
Arquitectura 2013 Explicación 5 Parte II.
Tema 7. Introducción a lenguaje de programación Visual Basic (clase 1)
Introducción al Programa
Hojas de cálculo.
Creación y tratamiento de imágenes digitales
EL EDITOR GRAFICO DE WINDOWS
Hoja de cálculo Microsoft Excel
Estructuras de Control Ciclos
UTILIZANDO EL BLOCKCAD PARA HACER UNA BANDERA
Introducción a la Computación Conceptos Básicos ¿Qué es una Computadora? 2.
Estructuras de Control 2 Ciclos
Tema 6. Conceptos básicos de programación (Clase 2)
Tema 7. Introducción a lenguaje de programación Visual Basic (clase 1)
Arquitectura 2013 Explicación 6 Entrada-Salida.
Ejercicios Realiza una gráfica de barras con los siguientes datos:
ROJO Y AZUL COLORES. ROJO ES AZUL AZUL Y ROJO.
EUPs que imprima la tabla de multiplicar de 2 al 10
Access Este programa permite manipular datos en forma de tablas, realizar cálculos complejos con fórmulas y funciones, incluso dibujar distintos tipos.
Profesor del curso: UNIVERSIDAD NACIONAL DEL CENTRO DEL PERU 2019-I Facultad de Ingeniería de Sistemas 1.
Ejercicios Realiza una gráfica de barras con los siguientes datos:
Transcripción de la presentación:

Arquitectura 2013 Explicación 6

Puerto de E/S mapeado en Memoria CONTROL y DATA son direcciones de E/S y son fijas CONTROL: .word32 0x10000 DATA: .word32 0x10008

Salida CONTROL Imprimir un número recibe 1  Imprime un entero sin signo recibe 2  Imprime un entero con signo recibe 3  Imprime un punto flotante recibe 4  Imprime el string (asciiz) apuntado por la “dirección” recibe 5  Imprime un píxel de la pantalla gráfica recibe 6  limpia la pantalla alfanumérica recibe 7  limpia la pantalla gráfica Imprimir un número DATA recibe un “dato” Imprimir un string DATA recibe una “dirección” Pintar un píxel DATA recibe el color RGB (4 bytes) DATA+4 la coordenada Y DATA+5 la coordenada X Si queremos limpiar pantalla

Salida Pantalla alfanumérica Pantalla gráfica Si queremos imprimir un número DATA recibe un “dato” CONTROL 1  Imprime un entero sin signo 2  Imprime un entero con signo 3  Imprime un punto flotante Si queremos imprimir un string DATA recibe una “dirección” CONTROL 4  Imprime el string apuntado por la “dirección” Si queremos limpiar pantalla Si CONTROL 6  limpia la pantalla alfanumérica Pantalla gráfica Si queremos pintar un píxel DATA recibe el color RGB (en 4 bytes) DATA+4 la coordenada Y DATA+5 la coordenada X CONTROL 5  Imprime un píxel de la pantalla gráfica Si queremos limpiar pantalla Si CONTROL 7  se limpia la pantalla gráfica

WinMips64 Salidas

Ejercicio 1 – Pantalla alfanumérica .data texto: .asciiz "Hola, Mundo!" ; El mensaje a mostrar CONTROL: .word32 0x10000 ; Dirección de mapeo DATA: .word32 0x10008 ; Dirección de mapeo .text lwu $s0, DATA($zero) ; $s0 = dirección de DATA daddi $t0, $zero, texto ; $t0 = dirección del mensaje a mostrar sd $t0, 0($s0) ; DATA recibe el puntero al comienzo del mensaje lwu $s1, CONTROL($zero) ; $s1 = dirección de CONTROL daddi $t0, $zero, 6 ; $t0 = 6 -> función 6: limpiar pantalla alfanumérica sd $t0, 0($s1) ; CONTROL recibe 6 y limpia la pantalla daddi $t0, $zero, 4 ; $t0 = 4 -> función 4: salida de una cadena ASCII sd $t0, 0($s1) ; CONTROL recibe 4 y produce la salida del mensaje halt

Ejercicio 6 – Pantalla gráfica .data coorX: .byte 24 ; coordenada X de un punto coorY: .byte 24 ; coordenada Y de un punto color: .byte 255, 0, 255, 0 ; color: máximo rojo + máximo azul => magenta CONTROL: .word32 0x10000 ; Dirección de mapeo DATA: .word32 0x10008 ; Dirección de mapeo .text lwu $s6, CONTROL($zero) ; $s6 = dirección de CONTROL lwu $s7, DATA($zero) ; $s7 = dirección de DATA daddi $t0, $zero, 7 ; $t0 = 7 -> función 7: limpiar pantalla gráfica sd $t0, 0($s6) ; CONTROL recibe 7 y limpia la pantalla gráfica lbu $s0, coorX($zero) ; $s0 = valor de coordenada X sb $s0, 5($s7) ; DATA+5 recibe el valor de coordenada X lbu $s1, coorY($zero) ; $s1 = valor de coordenada Y sb $s1, 4($s7) ; DATA+4 recibe el valor de coordenada Y lwu $s2, color($zero) ; $s2 = valor de color a pintar sw $s2, 0($s7) ; DATA recibe el valor del color a pintar daddi $t0, $zero, 5 ; $t0 = 5 -> función 5: salida gráfica sd $t0, 0($s6) ; CONTROL recibe 5 y produce el dibujo del punto halt

Entrada HEXADECIMAL - Muestra el carácter presionado en la terminal. Si CONTROL recibe 8, DATA poseerá un “número” ingresado por teclado (entero o pto flotante.) Si CONTROL recibe 9, DATA poseerá un “byte” ingresado por teclado HEXADECIMAL - Muestra el carácter presionado en la terminal. - Termina de leer cuando se presiona enter. - Si el dato ingresado no es un número, guarda 0 ASCII - No muestra el carácter presionado en la terminal - Solo se lee un carácter. No espera un enter.

Ejercicio 8 El siguiente programa implementa una animación de una pelotita rebotando por la pantalla. .data CONTROL: .word32 0x10000 DATA: .word32 0x10008 color_pelota: .word32 0x00FF0000 ; Azul color_fondo: .word32 0x00FFFFFF ; Blanco .text lwu $s6, CONTROL($zero) lwu $s7, DATA($0) lwu $v0, color_pelota($zero) lwu $v1, color_fondo($zero) daddi $s0, $ zero, 23 ; Coordenada X de la pelota daddi $s1, $ zero, 1 ; Coordenada Y de la pelota daddi $s2, $ zero, 1 ; Dirección X de la pelota daddi $s3, $ zero, 1 ; Dirección Y de la pelota daddi $s4, $ zero, 5 ; Comando para dibujar un punto

Ejercicio 8 Borra la pelota $s6  CONTROL $s7  DATA($0) $v0  color de pelota $v1  color de fondo $s0  Coord X de la pelota $s1  Coord Y de la pelota $s2  Dir X de la pelota $s3  Dir Y de la pelota $s4  Comando para dibujar Ejercicio 8 loop: sw $v1, 0($s7) sb $s0, 4($s7) sb $s1, 5($s7) sd $s4, 0($s6) dadd $s0, $s0, $s2 ; Calcula la nueva posición de la pelota dadd $s1, $s1, $s3 ; teniendo en cuenta la dir actual daddi $t1, $zero, 48 ; Comprueba que la pelota no esté en la col slt $t0, $t1, $s0 ; de más a la derecha. Si es así, cambia la dir en X. dsll $t0, $t0, 1 dsub $s2, $s2, $t0 slt $t0, $t1, $s1 ; Comprueba que la pelota no esté en la fila de más arriba. dsll $t0, $t0, 1 ; Si es así, cambia la dirección en Y. dsub $s3, $s3, $t0 slti $t0, $s0, 1 ; Comprueba que la pelota no esté en la columna de más dsll $t0, $t0, 1 ; a la izquierda. Si es así, cambia la dirección en X. dadd $s2, $s2, $t0 slti $t0, $s1, 1 ; Comprueba que la pelota no esté en la fila de más abajo. dadd $s3, $s3, $t0 sw $v0, 0($s7) ; Dibuja la pelota. daddi $t0, $zero, 500 ; Hace una demora para que el rebote no sea tan rápido. demora: daddi $t0, $t0, -1 ; Esto genera una infinidad de RAW y BTS pero... bnez $t0, demora ; ¡hay que hacer tiempo igualmente! j loop Borra la pelota

¿Preguntas?