Clase Teórica N°5 Modos de direccionamiento PROCESADORES Clase Teórica N°5 Modos de direccionamiento
Arquitectura general de un sistema de cómputo Bus de direcciones Bus de datos Bus de control RW CS CE OE MEMORIA Programas – Datos - Pilas PERIFÉRICOS Sensores – Actuadores – Comunicaciones
Clasificación de las arquitecturas de procesadores Pila Acumulador Banco de registros Nivel 5 Banco de Registros Nivel 4 Nivel 3 ALU ALU ALU Nivel 2 Nivel 1 Nivel 0
Clasificación de las arquitecturas de procesadores Nivel 5 Banco de Registros Nivel 4 Nivel 3 ALU ALU ALU Nivel 2 Nivel 1 Nivel 0
Modos de direccionamiento Definición: Formas de hacer referencia a el contenido de la memoria del procesador. ¿Cómo se accede a los datos al ejecutar las siguientes instrucciones? a=a+5; a=a+b; a=a+b[3]; //(vector estático y dinámico)
Modos de direccionamiento Registro R4 • R4 + R3 Memoria principal Banco de Registros Add R4, R3 R0 R1 R2 R3 + R4 R5 R6 R7
Modos de direccionamiento Inmediato ó Literal R4 • R4 + 5 Memoria principal Banco de Registros Add R4, #5 R0 R1 R2 R3 + R4 R5 R6 R7
Modos de direccionamiento Directo R4 • R4 + M[1021] Memoria principal Banco de Registros Add R4, (1021) R0 R1 R2 R3 + R4 R5 R6 R7
Modos de direccionamiento Indirecto R4 • R4 + M[R7] Memoria principal Banco de Registros Add R4, (R7) R0 R1 R2 R3 + R4 R5 R6 R7
Modos de direccionamiento Desplazamiento R4 • R4 + M[100+R7] Memoria principal Banco de Registros Add R4, 100(R7) R0 R1 R2 R3 + R4 R5 R6 R7 + 100
Modos de direccionamiento Indexado R4 • R4 + M[R1+R0] Memoria principal Banco de Registros Add R4, (R0+R1) R0 + R1 R2 R3 + R4 R5 R6 R7
Modos de direccionamiento Diferido de memoria R4 • R4 + M[ M[R7] ] Memoria principal Banco de Registros Add R4, @(R7) R0 R1 R2 R3 + R4 R5 R6 R7
Modos de direccionamiento Auto Incremento R4 • R4 + M[R7] R7 • R7 + d Memoria principal Banco de Registros Add R4, (R7)+ R0 R1 R2 R3 + R4 R5 R6 R7 + d
Modos de direccionamiento Auto Decremento R4 • R4 + M[R7] R7 • R7 - d Memoria principal Banco de Registros Add R4, -(R7) R0 R1 R2 R3 + R4 R5 R6 R7 - d
Modos de direccionamiento Escalado R4 • R4 + M[10+R1+R0*d] Memoria principal Banco de Registros d x 10 Add R4,10(R1)[R0] R0 + R1 R2 R3 + R4 R5 R6 R7
Resumen Escalado R4 • R4 + M[10+R1+R0*d] Auto Decremento . Auto Incremento Diferido de memoria Indexado Desplazamiento Indirecto Directo Inmediato Registro R4 • R4 + M[10+R1+R0*d] R4 • R4 + M[R7] R7 • R7 – d . R7 • R7 + d . R4 • R4 + M[ M[R7] ] . R4 • R4 + M[R1+R0] . R4 • R4 + M[100+R7] . R4 • R4 + M[R7] . R4 • R4 + M[1021] . R4 • R4 + 5 . R4 • R4 + R3 .
Ejecución de una instrucción jmp 0x02 reset Inicial Búsqueda jz Ejecución jmp 0x20 ld a xx sub a and a ld xx a add a 0x06 0x00 0x00 lda 0x80 0x01 0x80 0x02 0x04 suba 0x81 0x03 0x81 0x04 0x05 jz 0x08 0x?? 0x05 0x08 0x06 0x06 jmp 0x02 0x07 0x02
Ejecución de una instrucción jmp 0x02 reset Inicial Búsqueda jz Ejecución jmp 0x20 ld a xx sub a and a ld xx a add a 0x07 0x00 0x00 lda 0x80 0x01 0x80 0x02 0x04 suba 0x81 0x03 0x81 0x04 0x05 jz 0x08 0x06 0x05 0x08 0x06 0x06 jmp 0x02 0x07 0x02
Ejecución de una instrucción suba 0x81 reset Inicial Búsqueda jz Ejecución jmp 0x20 ld a xx sub a and a ld xx a add a 0x02 0x00 0x00 lda 0x80 0x01 0x80 0x02 0x04 suba 0x81 0x03 0x81 0x04 0x05 jz 0x08 0x02 0x05 0x08 0x06 0x06 jmp 0x02 0x07 0x02
Ejecución de una instrucción suba 0x81 reset Inicial Búsqueda jz Ejecución jmp 0x20 ld a xx sub a and a ld xx a add a 0x03 0x00 0x00 lda 0x80 0x01 0x80 0x02 0x04 suba 0x81 0x03 0x81 0x04 0x05 jz 0x08 0x04 0x05 0x08 0x06 0x06 jmp 0x02 0x07 0x02
Ejecución de una instrucción suba 0x81 reset Inicial Búsqueda jz Ejecución jmp 0x20 ld a xx sub a and a ld xx a add a 0x03 0x00 0x00 lda 0x80 0x01 0x80 0x02 0x04 suba 0x81 0x03 0x81 0x04 0x05 jz 0x08 0x81 0x05 0x08 0x06 0x06 jmp 0x02 0x07 0x02
Ejecución de una instrucción jz 0x08 reset Inicial Búsqueda jz Ejecución jmp 0x1F ld a xx sub a and a ld xx a add a 0x04 0x00 0x00 lda 0x80 0x01 0x80 0x02 0x04 suba 0x81 0x03 0x81 0x04 0x05 jz 0x08 0x02 0x05 0x08 0x06 0x06 jmp 0x02 0x07 0x02
Estudio del PIC 16F627A
Estudio del PIC 16F627A
Laboratorio Diagrama de bloques Bus de Direcciones Bus de Datos MEMORIA Datos + Programa PERIFERICO Diseñado por Uds LEDS
Laboratorio Diseñar e implementar un periférico con las siguientes características: • Función: Contador de frecuencia variable – Configuración: Permitir, por medio del registro (200) activar y modificar la frecuencia de trabajo del contador según la tabla:
Laboratorio r_w LEDs Bus de Direcciones Decodificador Contador Bus de Datos Mclk 1 2 3 4 5 6 7 8 9 10 11 ··· 21 22 23 24 25 26 27 28
Laboratorio IMPORTANTE! Llevar al laboratorio adelantado: Descripción en VHDL del periférico simulado, por lo menos él funcionando independientemente. Programa de prueba en lenguaje de máquina para comprobar su funcionamiento.