Arquitectura 2013 Explicación 6 Entrada-Salida.

Slides:



Advertisements
Presentaciones similares
ARQUITECTURA BÁSICA DE MIPS 64
Advertisements

Introducción al lenguaje C++
Laboratorio de Organización del Computador. Cómo nos podemos comunicar con un computador Add A, B CA0 Ensamblador Hexadecimal Binario.
Microprocesador (80X86) Universidad Nacional de Ingeniería

MICROMUNDOS.
Algoritmos y Desarrollo de Programas I
 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.
Clase 1.  Un programador es aquella persona que escribe, depura y mantiene el código fuente de un programa informático, es decir, del conjunto de instrucciones.
Arquitectura de PCs Secuencia de compilación de un programa.
HMI Interface de Operador
Unidad 7 y 8 Iniciar en Word Pad.
© Área de las Tecnologías de la Información y las Comunicaciones Aplicadas. Curso de introducción a Fundeweb.
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.
El procesador Datapath y control. Universidad de SonoraArquitectura de Computadoras2 Introducción En esta parte del curso contiene: Las principales técnicas.
Lenguaje ensamblador MIPS
Curso de introducción a Fundeweb
TERMINOLOGÍA BÁSICA Informática: conjunto de conocimientos científicos y técnicas que hacen posible el tratamiento automático y racional de la información,
Diagrama de Flujo de Datos (DFD)
¿Cómo almacenar datos dentro del computador?
Paul Leger Ejercicios Paul Leger
Introducción a la Programación Multimedial
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
El procesador Diseño del control.
T. MADRE RAM DISCO DURO CD ROM DVD ROM SCANNER DISCO DE 3 1/2
Superescalares Scheduling estático.
Pipelining Datapath y control.
Datapath para las instrucciones aritméticas y lógicas
LECCIONES DE PROGRAMACION INTERMEDIAS
TEMA 7 HARDWARE TECNOLOGÍA 3º ESO ADELA GINER LARRAURI.
Datapath para las instrucciones de carga y almacenamiento (load/store)
CLASE VII COMUNICACIÓN SERIAL (II).
Tema 2 Variables y cálculos
Arquitectura 2013 Explicación 3 - continuación.
Clase 7 Assembly - Simulador MSX88.
Permite la comunicación entre el usuario y la computadora
Manejador de interrupción (subrutina)
Arquitectura 2013 Explicación 4.
Arquitectura 2013 Explicación 6.
MC Beatriz Beltrán Martínez Primavera 2016
Arquitectura 2013 Explicación 5.
Computación Curso 2017.
Arquitectura 2013 Explicación 5 Parte II.
Aprendiendo A Usar Microsoft Word
CUESTIONARIO.
INFORMATICA Es una ciencia que estudia métodos, procesos, técnicas, con el fin de procesar datos en formato digital, almacenar y transmitir información.
Explicación 2 Interrupciones.
FLUJOS (Flujos de Bytes-Caracteres)
Conceptos Básicos de Computación
Cuadros de diálogo - JOptionPane JOptionPane.showMessageDialog(…) JOptionPane.showInputDialog(…) showInputDialog y showMessageDialog, son métodos estáticos.
Introducción a la Computación
Manejo de video y teclado
Estructuras de Control Ciclos
MICROMUNDOS.
Buenos días, por favor contestar la siguiente encuesta que se encuentra en la dirección que esta a continuación se presenta, imprimir la pantalla del.
LOS HIPERVÍNCULOS. Los hipervínculos son una especie de enlaces a otro archivo, pagina Web o una dirección de correo electrónico, es una herramienta muy.
MC Beatriz Beltrán Martínez Otoño 2017
Tema 1 Fundamentos de Computación
Diego Hernández R Algoritmos Diego Hernández R
Diego Hernández R Algoritmos Diego Hernández R
Hola Si quieres tener un GRAN día Manda este mensaje a 50 personas.
Informática Ingeniería en Electrónica y Automática Industrial
Hola Si quieres tener un GRAN día Manda este mensaje a 50 personas.
ROJO Y AZUL COLORES. ROJO ES AZUL AZUL Y ROJO.
El procesador Datapath y control.
Memoria Cachés.
Arquitectura del Hardware
Arquitectura de Hardware
INTRODUCCIÓN A LA INFORMÁTICA
Transcripción de la presentación:

Arquitectura 2013 Explicación 6 Entrada-Salida

Dispositivo de E/S => pantalla alfanumérica + teclado

Dispositivo de E/S => pantalla gráfica

¿Cómo usarlos? Dos “registros”: CONTROL: Para enviar códigos de operación. DATA: Para enviar o recibir datos. Los usamos como si fuera celdas de memoria comunes Memoria de datos => Puerto de E/S mapeado en Memoria CONTROL: 0x10000 DATA: 0x10008 (8 bytes) (8 bytes) 4

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

Cod. Instrucción | Cod. Reg | Dir. Fija | Cod. Reg ¿Cómo usarlos? CONTROL y DATA son celdas de memoria Se leen y escriben con instrucciones de memoria: LD/L.D/LBU/SD/S.D Problema: No se puede usar Sd $t1, 0x10000(r0) Las instrucciones de memoria se codifican como: Memoria de datos Cod. Instrucción | Cod. Reg | Dir. Fija | Cod. Reg Dir fija puede tener 2 bytes como máximo =>El valor 0x10000 no entra CONTROL: 0x10000 DATA: 0x10008 (8 bytes) (8 bytes)

Solución: poner las direcciones en registros .data CONTROL: .word 0x10000 DATA: .word 0x10008 .code ld $s0,CONTROL(r0) ld $s1,DATA(r0) # ahora s0 y s1 tienen las DIRECCIONES daddi $t0,$0,1 sd $t0,0($s0) ; mando el valor 1 a control

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 Usar LD o L.D para leer de DATA ASCII - No muestra el carácter presionado en la terminal - Solo se lee un carácter. No espera un enter. - Usar LBU para leer de DATA