Sesión 1. El Computadores II Rodrigo Santamaría

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

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

8.4. El software en los μprocesadores

Arquitectura de Computadores II Clase #3

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

El nivel ISA (II)! Conjunto de Instrucciones

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

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

Laboratorio de Arquitectura de Redes. Entrada y salida estándar

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

Informática Ingeniería en Electrónica y Automática Industrial

Tema 5. Presentación de datos por pantalla

Tema 5.1: Presentación de datos en pantalla

Práctica ENS:Ensamblar y depurar

Relación de Problemas I

PROGRAMA de Organización de Computadoras

Estructura de Computadores Tema 1. Introducción a los computadores

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

$0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos

UN SIMULADOR DE UNA MAQUINA COMPUTADORA COMO HERRAMIENTA PARA LA ENSEÑANZA DE LA ARQUITECTURA DE COMPUTADORAS

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

El Diseño de un Lenguaje Máquina

Tema 2: Lenguaje máquina. La interfaz entre el hardware y el software

Microprocesadores, Tema 2:

Datos y tipos de datos

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

Objetivos. Objetivos. Arquitectura de Computadores. R.Mitnik

Arquitectura (Procesador familia 80 x 86 )

Tema 2 Conceptos básicos de programación. Fundamentos de Informática

Anexo B. Comunicaciones entre mc y PC

Shell Script Sistemas Operativos III - ITS EMT - CETP

Ejercicios del tema 4. El procesador

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C

Principios de Computadoras II

Construyendo Programas más Complejos

1.2.- EL MICROPROCESADOR.

Tema 2 Introducción a la Programación en C.

Introducción a la arquitectura de computadores

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

SISTEMAS OPERATIVOS Arquitectura de computadores

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

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA

Conceptos de Arquitectura de Computadoras Curso 2015

3 - Arquitectura interna de un up

Estructura de Microprocesadores. Profesor Ing. Johan Carvajal Godínez

Definición de Memoria

Datos y tipos de datos

INDICE Control de dispositivos específicos Diseño asistido por computadora Simulación Cálculos científicos

Tema 4. Lenguaje máquina y lenguaje ensamblador

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

TEMA III: OPERACIONES CON LOS DATOS

4. Operadores Operador asignación

1.1 Introducción y definición de un microcontrolador 1.2 Estructura básica de un microcontrolador 1.3 Características de la Arquitectura

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

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

TAREA 1 ARITMETICA PARA BCD Y ASCII.

APENDICE B Ensamblador IASM11/Simulador AVSIM11

TEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO. Definición y objetivos de un S.O

Monoalgorítmez: modelo funcional

TEMA 2. CODIFICACIÓN DE LA INFORMACIÓN

Fundamentos de programación JAVA

Práctica 4 - Arquitectura CPU

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

6. Entrada y Salida Explicación de la interfaz entre el computador y el mundo exterior.

Arquitectura de computadoras

Curso de Programación Avanzada en C

Fundamentos de Programación Visual Basic

Práctica 2: Sector de arranque

Guía 01: Sistemas Numéricos

Resumen de las instrucciones del 8086/8088

Departamento de Ingeniería de Sistemas y Automática. STEP 7. Juego de instrucciones

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

LABORATORIO DE ARQUITECTURA DE COMPUTADORES. I. T. I. SISTEMAS / GESTIÓN GUÍA DEL ALUMNO

UNIDAD 3 ARQUITECTURA DEL Z80. Microprocesadores Otoño 2011

Arquitectura de Computadores. Apellidos, Nombre:

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo

Definición: Dispositivo mecánico-electrónico que procesa Información (numérica, alfanumérica )

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

Clase 02: Representación de datos

FUNDAMENTOS DE INFORMÁTICA

TEMA 2: Sistemas Operativos

FUNDAMENTOS DE COMPUTADORES 18 de junio de Examen parcial del 2º cuatrimestre.

Representación de Datos. Representación de datos numéricos. Representación de datos caracteres. Representación de otros tipos de datos

INDICE 1. Operación del Computador 2. Sistemas Numéricos 3. Álgebra de Boole y Circuitos Lógicos

Es un software de simulación que ejecuta programas en lenguaje de ensamblador para procesadores con arquitectura MIPS32.

PRÁCTICAS DE ARQUITECTURA DE COMPUTADORES

SOLUCION EXAMEN junio 2006

Tema: Microprocesadores

DIRECTIVAS DEL ASM86

Introducción. Aparición en los 50, se facilita la comunicación entre el usuario y el ordenador Cualquier persona puede utilizar un ordenador.

Fecha de Introducción. Velocidad de reloj. Anchura del bus. Número de transistores. (microns) Memoria direccionable.

Control Digital en PC con MS-DOS

Manual de usuario del simulador BIRD. 1 Instalación del simulador BIRD 2 Manual de usuario

PRÁCTICA MANEJO INTERNO DE DATOS

PREGUNTAS INFORMÁTICA MONITOR UPB EXAMEN 1

EXAMEN ORDINARIO DE ORGANIZACIÓN DE COMPUTADORES

Introducción a la programación en Lenguaje Assembler.

Enteros. Son los números que no contienen componentes fraccionarios y, por tanto, no contienen punto decimal.

Curso sobre Controladores Lógicos Programables (PLC).

CONVERSIONES ENTRE NUMEROS DE BASE DIFERENTE

Transcripción:

Sesión 1 El 6809 Computadores II Rodrigo Santamaría

Índice El 6809 Configuración del entorno de trabajo Hola Mundo Compilación, enlazado y ejecución Formato de un programa ensamblador Registros del 6809 Órdenes básicas

El MC6809 Procesador creado por Motorola en 1977 como sustitución y mejora del 6800. Es un procesador de 8 bits, con algunas características de 16 bits. Juego de instrucciones de procesadores CISC Más sencillo que procesadores posteriores Dos registros índices y dos de pila, altamente intercambiables Un poco de historia: http://tlindner.macmess.org/wp-content/uploads/2006/09/byte_6809_articles.pdf

El MC6809 A y B (8 bits) pueden combinarse en D (16). Es donde se realizarán la mayoría de operaciones Las veremos más adelante Dirección de memoria de la siguiente instrucción a ejecutar

El MC6809 E (entire state): marca si, en una interrupción, se guardaron todos los registros en la pila o solamente PC y CC F (FIRQ interrupt mask): sirve para inhibir o permitir las interrupciones rápidas H (half carry): marca si hubo acarreo en el bit 3 de una instrucción de suma/resta de 8 bits. Lo usa internamente el procesador en la instrucción DAA I (IRQ interrupt mask): sirve para inhibir o permitir las interrupciones normales N (negative): es una copia del bit más significativo del resultado (bit que marca el signo en complemento a dos) Z (zero): activo si el resultado de una operación es cero V (overflow): activo si existe desbordamiento en una operación en complemento a dos C (carry): almacena el bit de acarreo en las sumas/restas. También se usa como apoyo en las operaciones de rotación o desplazamiento de bits

Configuración del entorno de trabajo Descargar los ficheros: Ensamblador: http://avellano.usal.es/~compii/as6809 Enlazador: http://avellano.usal.es/~compii/aslink Ejecutor: http://avellano.usal.es/~compii/m6809-run Guardarlos en una carpeta nueva p.ej. /usr/bin/compilador6809 Dar permisos de ejecución con chmod u+x /usr/bin/compilador6809/* En el profile (.bashrc en Ubuntu) añadir, al final del todo, la línea PATH=$PATH:/usr/bin/compilador6809 Reiniciar el terminal y probar que se ejecutan correctamente desde cualquier ruta [ Otros emuladores: http://koti.mbnet.fi/~atjs/mc6809 ]

Programa Hola Mundo ; Programa de ejemplo: hola.asm.area PROG (ABS).org 0x100 cadena:.ascii "Hola, mundo.".byte 10 ; 10 es CTRL-J: salto de linea.byte 0 ; 0 es CTRL-@: fin de cadena.globl programa programa: ldx #cadena bucle: lda,x+ beq acabar sta 0xFF00 ; salida por pantalla bra bucle acabar: clra sta 0xFF01.org 0xFFFE ; Vector de RESET.word programa

Compilación de hola.asm Hola Mundo Lenguaje natural Hola Mundo m6809-run hola.s19 ejecución Código ejecutable hola.s19 S1210100486F6C612C206D756E646F S105FFFE010EEE S9030000FC programación gedit enlazado aslink -s hola.rel hola.asm Código ensamblador ; Programa de ejemplo: hola.asm.area PROG (ABS) ensamblado as6809 -o hola.asm.org 0x100 cadena:.ascii "Hola, mundo.".byte 10 ; 10 es CTRL-J: salto de linea.byte 0 ; 0 es CTRL-@: fin de cadena.globl programa programa: ldx #cadena bucle: lda,x+ beq acabar sta 0xFF00 bra bucle acabar: clra sta 0xFF01.org 0xFFFE.word programa ; salida por pantalla ; Vector de RESET Código objeto o máquina Otros posibles Módulos objeto hola.rel XH2 H 3 areas 2 global symbols 2 banks 1 modes G 00 00 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F B _CSEG base 0 size 0 map 0 flags 0 B _DSEG base 0 size 0 map 0 flags 4 fsfx _DS S..ABS. Def0000 A _CODE size 0 flags CC80 bank 0 A _DATA size 0 flags CCC0 bank 1 A PROG size 0 flags D0C S programa Def010E T 01 00 R 00 00 00 02 T 01 00 48 6F 6C 61 2C 20 6D 75 6E 64 6F 2E 0A R 00 00 00 02 T 01 0D 00 R 00 00 00 02 T 01 0E R 00 00 00 02 T 01 0E 8E 01 00 A6 80 27 05 B7 FF 00 20 F7 4F R 00 00 00 02 01 03 00 02 T 01 1B B7 FF 01 R 00 00 00 02 T FF FE R 00 00 00 02 T FF FE 01 0E R 00 00 00 02 01 02 00 02

Fases de la compilación Lenguaje Comprensión humana Comprensión máquina Alcance Natural Sí No Humanos que conozcan el idioma Código fuente (ensamblador) Programador Ensamblador Programadores que conozcan el lenguaje Cualquier máquina que tenga el programa ensamblador Código objeto (máquina) No Enlazador La máquina para la que se ha enlazado (si tiene enlaces a otros módulos, no los reconoce) Código ejecutable No Ejecutor La máquina para la que se ha enlazado

Programa Hola Mundo ; Programa de ejemplo: hola.asm.area PROG (ABS).org 0x100 cadena:.ascii "Hola, mundo.".byte 10 ; 10 es CTRL-J: salto de linea.byte 0 ; 0 es CTRL-@: fin de cadena.globl programa programa: ldx #cadena bucle: lda,x+ beq acabar sta 0xFF00 ; salida por pantalla bra bucle acabar: clra sta 0xFF01.org 0xFFFE ; Vector de RESET.word programa

Formato de un programa.asm Todas sus líneas tienen el formato: [etiqueta:] operador [operando][;comentario] Etiqueta (opcional): hace referencia a la dirección de memoria de la instrucción de esta línea. Sirve para emular control de flujo (bucles, subrutinas, etc.) o variables (si se etiqueta una orden load) Valen los caracteres: A-Za-z0-9._$ (sin empezar por 0-9 o $$) Operador: código de instrucción del procesador (nemónico) o directiva de ensamblador (comienzan por.) Operando: argumentos necesarios para el operador Comentario (opcional): texto en lenguaje natural

Instrucciones (nemónicos) LDx carga el registro x STx almacena el registro x x puede ser A, B, D, X, Y o S Flags afectados: N, Z, V=0 TFR x,y transfiere el contenido de x a y EXG x,y intercambia el contenido de x e y x e y pueden ser A, B, D, X, Y, U, S, PC, CC o DP Flags afectados: ninguno, a no ser que CC participe en el intercambio o sea el destino de la transferencia

Instrucciones de carga: LDx Cargar el registro A con un 7: lda #7 OJO: El # indica que 7 es un número, si no se pone, se carga en A el byte que haya en la dirección de memoria 7 Prefijos 0x (hexadecimal), 0b (binario), 0o (octal) ' para un carácter en código ASCII (8 bits) para dos caracteres ASCII (16 bits) lda #'a ldd #"AB ; Cargamos A con el codigo ASCII de la a: 97 ; Cargamos D con el codigo ASCII de AB: 0x4142 ldb #'\n ; Cargamos B con el codigo de salto de linea (CTRL+J): 10 ldx #'\010 ; Cargamos X con el codigo de retroceso (CTRL+H): 8 lda 0x1000 ; Cargamos A con el valor guardado en la dirección 0x1000

Almacenamiento: STx Almacenar el valor de A en la dirección de memoria 0x2222: sta 0x2222 Es habitual usar etiquetas para referenciar posiciones de memoria (~variable): zipi:.byte 4 ; reserva un byte para zipi, con valor 4 zape:.byte 0 ; idem zape, valor inicial 0... lda zipi sta zape

Transferencia e intercambio Transferir de un registro a otro de igual tamaño: tfr a,b Intercambiar los contenidos de dos registros: exg a,b Se pueden usar sobre los registros: A, B, D, X, Y, U, S, PC, CC, DP Siempre que sean del mismo tamaño

Big endian Convenio para el almacenamiento de más de un byte, utilizado por el 6809 Aparece con los procesadores de 16 bits Implica que primero se almacena el byte más significativo y luego se continúa hacia los menos significativos Motorola trabaja en big endian, Intel en little endian Algunas arquitecturas trabajan en ambos: middle endian

Big endian the origin of these words is from Jonathan Swift s Gulliver s Travels, where in the Lilliput kingdom, a decree by the King, that eggs be broken from the little side, caused a rebellion by a faction called the Big Endians, who were used to breaking their eggs from the bigger end.

La máquina simple Simulador de la interacción con un programa (que normalmente realiza el sistema operativo) Comienzo: el simulador comienza con PC=valor de 16 bits en la posición 0xFFFE Finalización: cuando se escribe un valor de 8 bits en la posición 0xFF01, que de devuelve a la shell. Se puede inspeccionar con el comando de la shell echo $? Escritura en pantalla: el código ASCII del valor que se escriba en la dirección 0xFF00 Lectura de teclado: su código ASCII se almacena en la dirección 0xFF02