Operaciones lógicas y repetición

Documentos relacionados
Práctica 4 - Arquitectura CPU

El nivel ISA (II)! Conjunto de Instrucciones

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

El Diseño de un Lenguaje Máquina

Conceptos de Arquitectura de Computadoras Curso 2015

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

Resumen de las instrucciones del 8086/8088

La arquitectura CISCA

Arquitectura de Computadores II Clase #3

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

Arquitectura de Computadores

ISA (Instruction Set Architecture) Arquitectura del conjunto de instrucciones

PROGRAMA de Organización de Computadoras

Arquitectura de Computadores. Apellidos, Nombre:

Comparaciones en lenguaje ensamblador

Organización del Computador I 1er. Parcial 17-Mayo Turno:

Entorno de Ejecución del Procesador Intel Pentium

8.4. El software en los μprocesadores

Clasificación del procesador según el número de referencias a memoria.

Intel 8086 modelo básico (primera parte) Registros:

Es toda la información que utiliza el computador. Según sea la información que guardemos en los datos, se clasifican en los siguientes tipos:

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

Examen de Arquitectura de Computadores 2 22 de febrero del 2011

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

Tema 2. Diseño del repertorio de instrucciones

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

Relación de Problemas I

Instrucciones de Control de Flujo y Usos de la Pila

FACULTAD DE INGENIERÍA

Arquitectura de Computadores II 8086 Parte II

Operadores. Javier Fernández Rivera -

Intel Arquitectura. Programación en Ensamblador Ing. Marcelo Tosini

Tema: Microprocesadores

Funcionamiento de la Pila (o stack)

1.2.- EL MICROPROCESADOR.

Unidad I: Organización del Computador. Ing. Marglorie Colina

Departamento de Sistemas e Informática

Introducción a la arquitectura de computadores

Objetivos. Objetivos. Arquitectura de Computadores. R.Mitnik

ESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES

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

Ficha de Aprendizaje N 13

Soluciones a los problemas impares. Tema 5. Memorias. Estructura de Computadores. I. T. Informática de Gestión / Sistemas

Caché. Matías Barbeito Organización del computador 1 2 cuatrimestre 2011

Nivel ISA. Revisión y resultados parcial 1

Aritmética de Enteros

Estructura del Computador

Trabajo Práctico Nro 3: Assembler

3 - Arquitectura interna de un up

Lógica Binaria. Arquitectura de Ordenadores. Codificación de la Información. Abelardo Pardo Universidad Carlos III de Madrid

Instituto Tecnológico de Morelia

SISTEMAS ELECTRÓNICOS DIGITALES

Materia Introducción a la Informática

El lenguaje C. 1. Identificadores, constantes y variables

Análisis general de un Microprocesador

Capítulo 7 OPERADORES Y EXPRESIONES. Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C"

1. Introducción a la Arquitectura de Computadoras

OPERADORES: Maquinaria para realizar las instrucciones. Capítulo Tercero Fundamentos de Computadores Ingeniería de Telecomunicación

Tema 3.1 Introducción a los circuitos combinacionales. Algebra de Boole

Circuitos Digitales II y Laboratorio Electrónica Digital II y Laboratorio

Tema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática

Construyendo Programas más Complejos

Arquitectura Von Neumann

Convenciones. Introducción. Unidades principales en la implementación. El procesador: camino de datos y control. Tipos de elementos:


CICLOS DEL PROCESADOR

Organización n del Computador. CPU (ISA) Conjunto de Instrucciones de la Arquitectura

TAREA 1 ARITMETICA PARA BCD Y ASCII.

ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA

Las fórmulas de Excel siempre comienzan por un signo igual (=) lo cual indica que los caracteres siguientes constituyen una fórmula.

CPU MEMORIAS CACHE. Memorias caché. Memoria caché = memoria de tamaño pequeño y acceso rápido situada entre la CPU y la memoria principal.

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

Pregunta correcta= 0,3 Pregunta no contestada= 0 Pregunta incorrecta (tipo test)= -0,15

Sistemas Electrónicos Digitales

FUNCIONAMIENTO DEL ORDENADOR

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

Arquitectura de Computadores. Tema 4 PROCESADORES SEGMENTADOS

OPERADORES Y EXPRESIONES

Tema 4. Estructura de un ordenador elemental

TRAB. PRÁCTICO Nº 3: UNIDAD CENTRAL DE PROCESAMIENTO (C.P.U.)

Tema 2: Arquitectura del repertorio de instrucciones. Visión del computador que tiene el programador en bajo nivel.

Práctica 1. Introducción a la programación en ensamblador

Sistemas de numeración, operaciones y códigos.

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

1. Computadores y programación

Matemáticas Básicas para Computación

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

La arquitectura del 8086/8088

Tema 4. Operadores y Expresiones

Práctica 8 - DMA y Almacenamiento Masivo

Tema 4. Lenguaje máquina y lenguaje ensamblador

INDICE Capitulo 1. Álgebra de variables lógicas Capitulo 2. Funciones lógicas

UNIDAD 4: El procesador: Camino de los datos y Control.

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

ASIGNATURA: ARQUITECTURA DE COMPUTADORAS PROFRA. ING. ROCÍO ROJAS MUÑOZ

1. Objetivo y evolución de los procesadores ILP.

FUNDAMENTOS DE INFORMÁTICA

Práctica 4. Introducción a la programación en lenguaje ensamblador

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

Transcripción:

Organización de computadoras Universidad Nacional de Quilmes http://

Repaso Algebra de Boole Memoria principal datos direcciones Unidad Aritmético- Logica (ALU) Unidad de Control de programa (UC) CPU 1 Flags 2 Program Counter 3 Instruction Register 4 Q3 1 Saltos condicionales (con y sin signo) 2 Saltos incondicionales: JMP control

Algebra de Boole: Características Operando con bits Operando con cadenas Máscaras Para capturar la matemática del pensamiento (1854) Se representa información relativa a los hechos, como el vaso está vacío o el vaso no está vacío Tiene variables y operaciones. Variable Binaria (o de Boole) que toma un valor del conjunto {0,1}

Algebra de Boole: Características Operando con bits Operando con cadenas Máscaras Valores de verdad 1 Verdadero 0 Falso

Algebra de Boole: Características Operando con bits Operando con cadenas Máscaras Operaciones Básicas Conjunción Disyunción Negación AND OR NOT

Algebra de Boole: Operaciones Operando con bits Operando con cadenas Máscaras Conjunción AND A B A B 0 0 0 0 1 0 1 0 0 1 1 1

Algebra de Boole: Operaciones Operando con bits Operando con cadenas Máscaras Disyunción OR A B A B 0 0 0 0 1 1 1 0 1 1 1 1

Algebra de Boole: Operaciones Operando con bits Operando con cadenas Máscaras Negación NOT A A 0 1 1 0

Algebra de Boole: Características Operando con bits Operando con cadenas Máscaras Operaciones derivadas Disyunción Exclusiva Negación de la conjunción Negación de la disyunción XOR NAND NOR

Operando con bits Operando con cadenas Máscaras Algebra de Boole: Operaciones derivadas Negación de la conjunción NAND A B (A B) A B A B (A B) 0 0 0 0 1 0 1 0 0 1 1 1

Operando con bits Operando con cadenas Máscaras Algebra de Boole: Operaciones derivadas Negación de la conjunción NAND A B (A B) A B A B 0 0 1 0 1 1 1 0 1 1 1 0

Operando con bits Operando con cadenas Máscaras Algebra de Boole: Operaciones derivadas Negación de la disyunción NOR A B (A B) A B A B (A B) 0 0 0 0 1 1 1 0 1 1 1 1

Operando con bits Operando con cadenas Máscaras Algebra de Boole: Operaciones derivadas Negación de la disyunción NOR A B (A B) A B A B 0 0 1 0 1 0 1 0 0 1 1 0

Operando con bits Operando con cadenas Máscaras Algebra de Boole: Operaciones derivadas Disyunción Exclusiva XOR A B (A B) (A B) A A B B (A B) (A B) (A B) (A B) 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0

Operando con bits Operando con cadenas Máscaras Algebra de Boole: Operaciones derivadas Disyunción Exclusiva XOR A B (A B) (A B) A B A B 0 0 0 0 1 1 1 0 1 1 1 0

Operaciones sobre cadenas Operando con bits Operando con cadenas Máscaras Operaciones sobre cadenas: AND bit a bit 1010 AND 0101 0000

Operaciones sobre cadenas Operando con bits Operando con cadenas Máscaras Operaciones sobre cadenas: OR bit a bit 1010 OR 0101 1111

Operaciones sobre cadenas Operando con bits Operando con cadenas Máscaras Operaciones sobre cadenas: NOT bit a bit NOT 1010 0101

Operaciones sobre cadenas Operando con bits Operando con cadenas Máscaras Ejercicios 1 2 3 1100 NAND 0100? 1100 NOR 0100? 1100 XOR 0100?

Operando con bits Operando con cadenas Máscaras Máscaras

Máscaras Algebra de Boole Operando con bits Operando con cadenas Máscaras Máscara Cadena binaria que se aplica sobre otra mediante una operación lógica para descubrir características sobre esa cadena AND 0101 cadena 1111 máscara 0101

Máscaras Algebra de Boole Operando con bits Operando con cadenas Máscaras Usando AND: Si se quiere preservar el bit: usar 1 Si se quiere poner un cero: usar 0???? AND 0001 000?

Máscaras Algebra de Boole Operando con bits Operando con cadenas Máscaras Usando OR: Si se quiere preservar el bit: usar 0 Si se quiere poner un uno: usar 1???? OR 0001???1

Máscaras: ejemplos de uso Operando con bits Operando con cadenas Máscaras Example Determinar si la cadena en R0 es impar AND R0, 0x0001 JNE saltaraespar

Máscaras: ejemplos de uso Operando con bits Operando con cadenas Máscaras Example Copiar el byte mas significativo de la celda 0348 en el registro R1 MOV R1, [0348] AND R1, 0xFF00

Máscaras: ejemplos de uso Operando con bits Operando con cadenas Máscaras Ejercicio (NO se entrega): Si la celda [CCCC] contiene un número par, sumar 30 al valor de R3. En caso contrario sumar 70 al valor de R4 MOV R1, [CCCC] AND R1, 0x0001 JNE noespar ADD R3, 0x001E JMP sigue noespar:add R4, 0x0046 sigue:

Máscaras: ejemplos de uso Operando con bits Operando con cadenas Máscaras Si las celdas CCCC y CCCD contienen números impares, restarles 0x0001 a ambas Ayudita: si ([CCCC] es impar) si ([CCCD] es impar) [CCCC] <-- [CCCC]-1 [CCCD] <-- [CCCD]-1 fin si fin si

Máscaras: ejemplos de uso Operando con bits Operando con cadenas Máscaras Permisos de acceso sobre archivos Con 3 bits se indica: 1 puedo leer? (r) 2 puedo escribir? (w) 3 puedo ejecutar? (x) Con 3 cadenas se describen permisos de usuario, grupo y otros Example La cadena 111111111 le da todos los permisos a todos

Máscaras: ejemplos de uso Operando con bits Operando con cadenas Máscaras Permisos de acceso sobre archivos Cómo saber si otro usuario del grupo puede escribirlo?????????? AND 000010000 0000?0000

Recorrido de arreglos Modos indirectos Ejercicio: Calcular el resto de la división entera: 14 %3

Recorrido de arreglos Modos indirectos Ejercicio: Calcular el resto de la división entera: 14 %3 Idea resto <- 14 mientras(resto > 3) resto <- resto-3 fin mientras

Recorrido de arreglos Modos indirectos

Recorrido de arreglos Modos indirectos Example ( Cómo encender el piloto del calefón?) 1 poner la perilla en posición piloto 2 acercar un fósforo mientras se presiona la perilla 3 mantener presionando aproximadamente 20 segundos 4 Si al liberar la perilla el piloto se apaga, volver al paso (1), sino seguir con el paso (5) 5...

Recorrido de arreglos Modos indirectos Example (Calcular el resto de la división entera 14 %3) 1 Inicializar la variable resto con el valor 14 2 Si resto es menor a 3, seguir por el paso (4) 3 Restar el valor 3 a la variable resto y volver al paso (2) 4... Se necesitan herramientas nuevas?

Recorrido de arreglos Modos indirectos Example (Calcular el resto de la división entera 14 %3 en Q3) 1 Inicializar la variable resto con el valor 14 2 Si resto es menor a 3, seguir por el paso (4) 3 Restar el valor 3 a la variable resto y volver al paso (2) 4... MOV R1, 0x000E SUB R1, 0x0003 R1<3? Volver MOV R1, 0x000E arriba: SUB R1, 0x0003 JLE fin JMP arriba fin: Fin

Recorrido de arreglos Modos indirectos Recorrido de arreglos

Modos indirectos Algebra de Boole Recorrido de arreglos Modos indirectos Arreglo de valores Posiciones de memoria consecutivas que contienen una colección de elementos. Cada elemento puede ocupar mas de una celda.. 000A 000B 000C 000D 000E 000F.. 1er valor 2do valor 3er valor 4to valor 5to valor 6to valor. Tamaño de un arreglo Cantidad de elementos

Recorrido de arreglos Modos indirectos Desafío A partir de la celda A000 hay un arreglo que contiene los pedidos de empanadas de una rotisería, y que finaliza con el primer valor 0. Sumar todos los valores.. A000 0010 A001 001A A002 0014 A003 0018 A004 0000..

Recorrido de arreglos Modos indirectos MOV R0,0x0000 A partir de la celda A000 hay un arreglo que contiene los pedidos de empanadas de una rotisería, y que finaliza con el primer valor 0. Sumar todos los valores ADD R0, [A000] [A000] = 0? Volver Fin Que limitación encontramos?

Recorrido de arreglos Modos indirectos Lo que estabas necesitando es...

Modos indirectos Algebra de Boole Recorrido de arreglos Modos indirectos Modo de direccionamiento indirecto Se especifica una dirección de memoria que contiene la dirección de memoria que contiene el operando MOV R0, [[FFFF]] Dónde está el operando?

Modos indirectos Algebra de Boole Recorrido de arreglos Modos indirectos MOV R0, [[FFFF]] Dónde está el operando?. A0A0. FFFF.. Operando. A0A0.

Modos indirectos Algebra de Boole Recorrido de arreglos Modos indirectos Modo de direccionamiento registro indirecto Se especifica un número de registro que contiene la dirección de memoria que contiene el operando MOV R0, [R5] Dónde está el operando?

Modos indirectos Algebra de Boole Recorrido de arreglos Modos indirectos MOV R0, [R5] Dónde está el operando? R5 = A0A0. A0A0.. Operando.

Recorrido de arreglos Modos indirectos Revisando el programa de la rotisería MOV R1,0xA000 A partir de la celda A000 hay un arreglo que contiene los pedidos de empanadas de una rotisería, y que finaliza con el primer valor 0. Sumar todos los valores MOV R0,0x0000 ADD R0, [R1] [R1] = 0? Volver Fin Ejercicio: Completar el programa

Ejercicio Algebra de Boole Recorrido de arreglos Modos indirectos Ejercicio: A partir de la celda B0B0 hay un arreglo con las temperaturas de una cierta localidad, y que finaliza con el primer valor 0. Calcular el promedio

La

Estructura de (Stack) La pila es un sector especial de la memoria Los datos se organizan apilados: 1 Cuando se escribe en la pila, se lo agrega sobre el último agregado 2 Cuando se lee de la pila, se lo saca del tope de la pila El seguimiento del tope de pila se lleva mediante un registro especial SP (Stack Pointer)

Estructura de Algebra de Boole SP (Stack Pointer) contiene la dirección de la primer celda de memoria disponible de la pila. SP FFFF Mem Ppal

Estructura de : Push Push 1 Se hace una escritura del dato que está en el bus de datos en la dirección que está en SP 2 Se decrementa SP (así sigue cumpliendo la condición)

Estructura de : Push ALU UC Push (1) PC IR SP Flags FFFF FFFF CPU Mem Ppal 0101 FFFF Escritura datos direcciones control

Estructura de : Push ALU UC Push (2) PC IR SP Flags FFFE CPU FFFF 0101 Mem Ppal datos direcciones control

Estructura de : Pop Pop 1 Se incrementa SP (para que haga referencia a un dato dentro de la pila) 2 Se hace una lectura de la dirección que está en SP

Estructura de : Pop ALU UC Pop (1) PC IR SP Flags FFFA CPU FFFA FFFF 1111 2230 DAA1 D001 0B08 0101 Mem Ppal datos direcciones control

Estructura de : Pop ALU UC Pop (2) PC IR SP Flags FFFB CPU FFFB FFFF 1111 2230 DAA1 D001 0B08 0101 Mem Ppal datos 2230 FFFB Lectura direcciones control

Estructura de Algebra de Boole El tamaño y la ubicación de la pila está definido por la arquitectura. El pop no blanquea el tope de la pila. Cuando se hace push se pierde el valor que tenía la celda (por definición de escritura)

Estructura de Algebra de Boole sumar los 2 números al tope de la pila y apilar el resultado POP R1 POP R2 ADD R1,R2 PUSH R1

Formato de las instrucciones Arquitecturas Q

Formato de las instrucciones... Si todavía tenés ganas de más...

Formato de las instrucciones

Arquitectura Q3 Algebra de Boole Formato de las instrucciones Q1 Q2 Q3 Q4

Arquitectura Q3 Algebra de Boole Formato de las instrucciones Tiene 8 registros de uso general de 16 bits: R0..R7 Tiene direcciones de 16 bits Tiene registros no visibles al programador: Program counter de 16 bits. Registro de flags (ZNCV) de 16 bits. Stack Pointer de 16 bits. Comienza en la dirección FFEF. permite 3 modos de direccionamiento: modo registro: el valor buscado está en un registro modo inmediato: el valor buscado está codificado dentro de la instrucción modo directo: el valor buscado está contenido en una celda de memoria modo indirecto: la dirección del valor buscado está contenido en una celda de memoria modo registro indirecto: la dirección del valor buscado está contenido en un registro

Formato de las instrucciones : formato de instrucciones Operaciones de tipo 1 (MUL,MOV,ADD,SUB,CMP,DIV,AND,OR) Cod Op Modo Destino Modo Origen Operando Destino Operando Origen (4b) (6b) (6b) (16b) (16b) Operaciones de tipo 2 (Un operando Origen) Cod Op Relleno Modo Origen Operando Origen (4b) (000000) (6b) (16b) Operaciones de tipo 2 (Un operando Destino) Cod Op Modo Destino Relleno Operando Origen (4b) (6b) (000000) (16b) Operaciones de tipo 3 (Saltos incondicionales y relativos) Prefijo Cod Op Desplazamiento(8) (1111) (4) (8b)

Formato de las instrucciones : Operaciones de tipo 1 Tipo 1: Aritméticas y lógicas Cod Op Modo Destino Modo Origen Operando Destino Operando Origen (4b) (6b) (6b) (16b) (16b) Operación CodOp MUL 0000 MOV 0001 ADD 0010 SUB 0011 CMP 0110 DIV 0111 AND 0100 OR 0101

Formato de las instrucciones : Operaciones de tipo 2 Tipo 2: Un operando Origen Cod Op Relleno Modo Origen Operando Origen (4b) (000000) (6b) (16b) Operación CodOp Efecto JMP 1010 PC dirección PUSH 1110 [SP] Origen; SP SP - 1

Formato de las instrucciones : Operaciones de tipo 3 Tipo 3: Un operando Destino Cod Op Modo Destino Relleno Operando Origen (4b) (6b) (000000) (16b) Operación CodOp Efecto NOT 1001 Dest NOT Dest (bit a bit) POP 1101 SP SP + 1; Dest [SP]

Formato de las instrucciones : Operaciones de tipo 4 Tipo 4: Salto condicional (relativo) - 1 de 2 Prefijo (1111) Cod Op (4b) Desplazamiento(8b) Salto Codop Descripción Condición JE 0001 Igual / Cero Z JNE 1001 No igual Z JLEU 0100 Menor o igual sin signo C Z JGU 1100 Mayor sin signo (C Z) JCS 0101 Menor sin signo C JNEG 0110 Negativo N

Formato de las instrucciones : Operaciones de tipo 4 Tipo 4: Salto condicional (relativo) - 2 de 2 Prefijo (1111) Cod Op (4b) Desplazamiento(8b) Salto Codop Descripción Condición JVS 0111 Overflow V JLE 0010 Menor o igual con signo Z (N V ) JG 1010 Mayor con signo (Z (N V )) JL 0011 Menor con signo N V JGE 1011 Mayor o igual con signo (N V )

Formato de las instrucciones Preguntas?