Práctica 4 - Arquitectura CPU



Documentos relacionados
Práctica 4 - Arquitectura CPU

Práctica 3 - Arquitectura del CPU

Tema 2. Diseño del repertorio de instrucciones

Arquitectura de Computadores

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


Organización de Computadoras

Entorno de Ejecución del Procesador Intel Pentium

ISA (Instruction Set Architecture) Arquitectura del conjunto de instrucciones

6-REGISTROS DEL 8086 Y DEL 80286


ESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES

2.4. Modos de direccionamiento Distintas formas que tiene la arquitectura para especificar la ubicación de los operandos.

Organización de computadoras. Clase 8. Universidad Nacional de Quilmes. Lic. Martínez Federico

Guía de ejercicios # 8 Flags y Saltos

La arquitectura CISCA

Práctica 3: Programación en ASM Orga 1

UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3

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

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

Operaciones lógicas y repetición

Apuntes de Microcontroladores (Repaso de temas previos)

Examen de Arquitectura de Computadores 2 22 de febrero del 2011

Introducción a la Programación 11 O. Humberto Cervantes Maceda

Guía de ejercicios # 10: Iteraciones, arreglos y recorridos

Tema 5 Repertorios de instrucciones: Modos de direccionamiento y formato

Lo que definimos como CPU (Central Process Unit) o Unidad Central de Proceso, está estructurado por tres unidades operativamente diferentes:

Capítulo 1: Sistemas de representación numérica Introducción. Dpto. de ATC, Universidad de Sevilla - Página 1 de 8

Práctica 8 - DMA y Almacenamiento Masivo

Generación de código para funciones. Generación de código para funciones. Generación de código para funciones. Generación de código para funciones

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)

EXAMEN ORDINARIO DE ORGANIZACIÓN DE COMPUTADORES

Clase 02: Representación de datos

Seguimiento. Organización del Computador I. Gustavo Cairo Carlos A. Di Pietro Carolina Lang. 1 er Cuatrimestre de 2016

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

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

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

Lección 1. Representación de números

by Tim Tran:

TEMA II: REPRESENTACIÓN DE LA INFORMACIÓN

TEMA 1 Representación de la información

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

Capítulo 0. Introducción.

Nibble Sirve para representar números hexadecimales. ( 0-9 A F) Sirve para representar números BCD (0...9)

3.8 Construcción de una ALU básica

1. Informática e información. 2. Sistemas de numeración. 3. Sistema binario, operaciones aritméticas en binario, 4. Sistemas octal y hexadecimal. 5.

Tiempo de Compilación. Programa fuente. Secuencia. de caracteres. Scanner. Secuencia. de símbolos Parser. Compilador.

Sistemas de Numeración Operaciones - Códigos

En la actualidad ASCII es un código de 8 bits, también conocido como ASCII extendido, que aumenta su capacidad con 128 caracteres adicionales

Procesadores segmentados. El DLX.

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

Representación de la Información

Computación I Representación Interna Curso 2011

Estructura de Computadores

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

LABORATORIO DE COMPUTADORAS

La Unidad Procesadora.

Tema I. Sistemas Numéricos y Códigos Binarios

Análisis general de un Microprocesador

Organización Básica de un Computador y Lenguaje de Máquina

Figura 1. Símbolo que representa una ALU. El sentido y la funcionalidad de las señales de la ALU de la Figura 1 es el siguiente:

DESARROLLO DE HABILIDADES DEL PENSAMIENTO LÓGICO

La memoria principal. Los subsistemas de E/S. Los buses del sistema

Estructura de Datos. Unidad I Tipos de Datos

Representación de números en binario

Introducción a la Computación TFA

INFORMÁTICA. Matemáticas aplicadas a la Informática

Estructura y Tecnología de Computadores (ITIG) Luis Rincón Córcoles José Ignacio Martínez Torre Ángel Serrano Sánchez de León.

Trabajo Práctico Nº 1 SISTEMAS DE NUMERACION

MATEMÁTICAS PARA LA COMPUTACIÓN CAPÍTULO 1. SISTEMAS NUMÉRICOS

Tema 2. La Información y su representación

x

1.1 Sistema de numeración binario

62/8&,21(6$/(;$0(1'( /$%25$725,2'((6758&785$6'(/26&20387$'25(6 &8562)(%5(52

ARQUITECTURA DE LAS COMPUTADORAS PRACTICA

TEMA 1: SISTEMAS INFORMÁTICOS. Parte 2: representación de la información

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

ANEXO 2: REPRESENTACION DE LA INFORMACION EN LOS COMPUTADORES

1. SISTEMAS DIGITALES

Cuestionario: Programación en C y máscaras (II)

Fundamentos de Programación. Sabino Miranda-Jiménez

❷ Aritmética Binaria Entera

21/02/2012. Agenda. Unidad Central de Procesamiento (CPU)

Entrada/Salida. Polling e Interrupciones. Verano de Mariano Moscato. Organización del Computador 1

Los sistemas de numeración se clasifican en: posicionales y no posicionales.

Materia Introducción a la Informática

Ahora comencemos!... Las operaciones matemáticas fundamentales pueden realizarse de forma rápida y sencilla con Miicrosofftt Excell.

Aritmética finita y análisis de error

Representación de Datos. Una Introducción a los Sistemas Numéricos

Arquitectura del CPU. Organización del Computador 1 Verano 2016

Tema 7: Esquema del Funcionamiento de una Computadora. Escuela Politécnica Superior Ingeniería Informática Universidad Autónoma de Madrid

Módulo 9 Sistema matemático y operaciones binarias

Notas de Teórico. Sistemas de Numeración

Materia: Informática. Nota de Clases Sistemas de Numeración

MICROPROCESADORES PARTES DE UN MICROPROCESADOR

Informática Básica: Representación de la información

Capítulo 2 REPRESENTACIÓN DE LOS DATOS. Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C"

La arquitectura del 8086/8088

SISTEMAS NUMERICOS. Ing. Rudy Alberto Bravo

Ejemplo del uso de las subrutinas

Transcripción:

Práctica 4 - Arquitectura CPU Organización del Computador 1 1er. Cuatrimestre 2006 Programación en Assembler Ejercicio 1 Dados los siguientes valores de la memoria y del registro R0 de la arquitectura OR- GA1, qué valores cargan en el registro R1 las siguientes instrucciones? La dirección 20 contiene 40 La dirección 30 contiene 50 La dirección 40 contiene 60 La dirección 50 contiene 70 El registro R0 contiene 30 a) MOV R1, 20 (inmediato) b) MOV R1,[20] (directo) c) MOV R1,[[20]] (indirecto) d) MOV R1, R0 (registro) e) MOV R1, [R0] (indirecto registro) f) MOV R1, [R0 + 20] (indexado registro) Ejercicio 2 Considere el siguiente programa escrito en Assembler de la arquitectura ORGA1 : Vector: DW xxxxxxxx DW zzzzzzzz... Clave: DW yyyyyyyy Comienzo: MOV R0, Vector MOV R1, [Clave] MOV R2, 0 Ciclo: MOV R3, [R0] CMP R3, 0 JE Fin CMP R3, R1 JE Sumo Sigo: ADD R0, 1 JMP Ciclo Sumo: ADD R2, 1 JMP Sigo Fin: RET 1

a) Explicar qué hace el programa siguiendo su ejecución paso a paso. b) Escribir un pseudocódigo que refleje el comportamiento del programa. Ejercicio 3 Escribir el pseudocódigo y el programa en Assembler de ORGA1 que recorra un vector de números codificados en notación complemento a 2 de 16 bits de precisión y devuelva el valor máximo y mínimo de dicho vector. La posición de inicio del vector es recibida en el registro R0 y su longitud en el registro R1. En los registros R2 y R3 deben guardarse el resultado del máximo y mínimo respectivamente. La solución debe recorrer el vector una única vez. Ejercicio 4 La arquitectura ORGA1 posee operaciones aritméticas con números enteros codificados en notación complemento a 2 de 16 bits de precisión. El programa sumar64 realiza la suma en notación complemento a 2 de dos números enteros de 64 bits en esta arquitectura. En los registros R 0 y R 1 se indican las direcciones de cada número y en R 2 se indica la posición de memoria en donde debe guardarse el resultado. Tanto los parámetros como el resultado vienen en orden little endian. Se pide: a) Escribir el pseudocódigo del programa sumar64. b) Escribir sumar64 en código Assembler de ORGA1. Ejercicio 5 sumavector64 es una rutina que suma los valores de un vector de n posiciones de enteros de 64 bits codificados en notación complemento a 2. En R 0 se recibe la cantidad de elementos que tiene el vector y en R 1 la posición de memoria en donde está almacenado dicho vector. En R 3 se recibe la posición de memoria en donde debe guardarse el resultado. Suponiendo que tenemos el programa sumar64 ya implementado como en el ejercicio anterior. se pide: a) Escribir el pseudocódigo del programa sumavector64. b) Escribir sumavector64 en código Assembler de ORGA1 (tener en cuenta las instrucciones de CALL y RET). Formato de instrucción y modos de direccionamiento Ejercicio 6 Dada una arquitectura con palabras de 32 bits; diga cuántos bits son necesarios para especi ficar una dirección de memoria en los siguientes casos: a) Si se require direccionar una memoria física de 4GB con direccionamiento a Byte. b) Si se require direccionar una memoria física de 8GB con direccionamiento a medias palabras. c) Si se require direccionar una memoria física de 16GB con direccionamiento a palabra. d) Si se require direccionar una memoria física de 32GB con direccionamiento a palabras dobles. Ejercicio 7 Dada una arquitectura con palabras e instrucciones de b Bytes que trabaja con una memoria física de x Bytes, con direccionamiento a palabra: a) Cuántos bits serán necesarios para especificar una dirección cualquiera de la memoria? 2

b) Cuál sería el número máximo de instrucciones posibles suponiendo que todas ellas incluyan uno y sólo un operando con modo de direccionamiento directo a memoria? c) Cómo reescribiría las respuestas a las dos preguntas anteriores si x y b fuesen potencias de 2 (i.e., X = 2 k y b = 2 j )? d) Bajo que condiciones de j se obtiene la máxima resolución (o granularidad) de memoria? Ejercicio 8 En las siguientes imagen se presenta el formato de instrucción de un procesador. A simple vista, considera que podría corresponder a un diseño ortogonal? Por qué? Ejercicio 9 Cuál es el máximo número de instrucciones de una dirección que admtirían cada una de las siguientes máquinas? a) Una máquina con instrucciones de 16 bits y direcciones de 6 bits, en la que hay n instrucciones de dos direcciones. b) Una máquina con instrucciones de 12 bits y direcciones de 4 bits, en la que hay 6 instrucciones de dos direcciones. Ejercicio 10 Con una máquina en la que las instrucciones tienen 16 bits de longitud y las direcciones 4 bits. Diseñe un formato de instrucción que contenga la siguiente cantidad de instrucciones: 15 instrucciones de 3 direcciones 14 instrucciones de 2 direcciones 31 instrucciones de 1 dirección 16 instrucciones sin direcciones Ejercicio 11 Diseñe un formato de instrucción con código de operación extensible (la cantidad de bits del código de operacion es variable) que se pueda codificar en una instrucción de 36 bits y permita lo siguiente: 7 instrucciones con dos direcciones de 15 bits y un número de registro de 3 bits 500 instrucciones con una dirección de 15 bits y un número de registro de 3 bits 50 instrucciones sin direcciones ni registros Ejercicio 12 Suponiendo que se necesitan 3 bits para direccionar un registro, es posible diseñar un formato de instrucción cuyo código de operación sea extensible y permita codificar lo siguiente en una instrucción de 12 bits? 4 instrucciones con tres registros 3

255 instrucciones con un registro 16 instrucciones sin registros Ejercicio 13 Un procesador soporta dos modos de direccionamiento diferentes: directo e indirecto. El formato de las instrucciones es el siguiente: Código de operación Bits de direccionamiento Dirección 4 bits 1 bit 7 bits Si el bit de direccionamiento es 1 se usará el modo de direccionamiento directo y si es 0 se usará el modo de direccionamiento indirecto. El código de operación correspondiente a la instrucción para sumar al acumulador un dato de la memoria es 1100. La memoria contiene los datos que se muestran en la tabla de la derecha. Dirección 34H 35H 36H 37H Contenido 33H 36H 35H 34H Antes de ejecutar la instrucción, el contenido del acumulador es 2B58H Cuál será el contenido del acumulador después de ejecutar las siguientes instrucciones? Acompañe el resultado con una explicación gráfica que lo justifique. a) 1100 1011 0100 b) 1100 0011 0101 Ejercicio 14 Existen muchas razones por las que los diseñadores de computadoras quieren instrucciones de longitud fija. Por qué no es una buena idea tener instrucciones de longitud fija en una máquina de pila? 1 Ejercicio 15 Se tienen 4 distintas computadoras cuyos procesadores tienen instrucciones de 0, 1, 2 y 3 operandos. Las instrucciones disponibles son las siguientes: La máquina 0 tiene todas instrucciones sin operandos (salvo las instrucciones PUSH y POP), usa una pila. La máquina 1 tiene instrucciones de 1 operando, usa un acumulador. Las máquinas 2 y 3 tienen instrucciones de 2 y 3 operandos, 16 registros con instrucciones que operan en cualquier combinación de direcciones de memoria y registros. Todas ellas tienen direcciones de 16 bits, código de operaciónes de 8 bits y tamaño de instrucciones múltiplo de 4 bits. A continuación se muestra en detalle el conjunto de instrucciones de cada máquina. Máquina 0 Máquina 1 Máquina 2 Máquina 3 PUSH M LOAD M AC M MOV X, Y X Y MOV X, Y X Y POP M STORE M M AC ADD X, Y X X + Y ADD X, Y, Z X Y + Z ADD push(pop+pop) ADD M AC AC + M SUB X, Y X X - Y SUB X, Y, Z X Y - Z SUB push(pop-pop) SUB M AC AC - M MUL X, Y X X * Y MUL X, Y, Z X Y * Z MUL push(pop*pop) MUL M AC AC * M DIV X, Y X X/Y DIV X, Y, Z X Y/Z DIV push(pop/pop) DIV M AC AC/M 1 Ej. 6, Cap. 5 del L. Null & J. Lobur - Essentials Of Computer Organization And Architecture 4

a) Escriba para cada computadora el programa para realizar x = (a + b c)/(d e f) b) Cuantas instrucciones tiene cada programa? c) Diseñe el formato de instrucción para cada uno d) Cuál es la longitud (en bytes) del programa para cada computadora? e) Cuál es la cantidad de accesos a memoria para cada caso? Ejercicio 16 Una arquitectura posee 1024 registros de 64 bits. Cada registro está subdividido en cuatro partes de 16 bits. Así, si R 7 denota al registro 7 complemento, entonces resulta R 7 = {R (1) 7 ; R(2) 7 ; R(3) 7 ; R(4) 7 }, donde cada R(i) podría referenciarse por separado. La memoria física es de 2GB direccionables a Byte. El procesador soporta el siguiente repertorio de instrucciones: CLR R u (i) ;R u (i) 0 (Pone en 0 una componente) INT R u (i),r v,r w ;R u (i) R v R w (Realiza el producto escalar) VEC R u,r v,r w ;R u R v R w (Realiza el producto vectorial) ADD R u,r v,r w ;R u R v R w (Suma componente a componente) SDV R u,r v,r w (i) ;R u R v /R w (i) (Divide cada componente por un escalar) MOV p,q ;p q (Copia 64 bits) Donde R u, R v, R w son registros completos; p, q pueden ser registros completos o direcciones de memoria; y R u (i), R w (i) pueden ser cualquiera de las componentes individuales de un registro. a) Diga si esta arquitectura sería compatible con un formato de instrucción ortogonal b) Diseñe un formato de instrucción de longitud fija de 64 bits c) Cuantos y cuáles modos de direccionamiento emplea el formato de instrucción propuesto d) Qué longitud de palabra resultaría más adecuada para el formato propuesto? Seguimiento de programas Ejercicio 17 A partir de cada uno de los siguientes vuelcos parciales de memoria y estados del procesador, realizar un seguimiento simulando ciclos de instrucción hasta encontrar una instrucción inválida (refiriéndose como invalida a una instrucción cuyo código de operación no figure entre los del conjunto de instrucciones). La arquitectura de la máquina es la descripta al final de esta práctica. Indicar qué celdas de memoria se modifican y el estado final del procesador. a) Ayuda: la quinta instrucción a ejecutar es inválida Z = N = C = V = 0 PC = A644 R0 = 035D R1 = 034C R2 = 8A6B R3 = 0300 R4 = E7A0 R5 = A622 R6 = 1A2B R7 = 3898 A630 A640 0 1 2 3 4 5 6 7 8 9 A B C D E F 2EFD 0053 0225 0000 0052 C925 F303 1A2B 5600 5B4C A4D6 88C0 0000 A200 034B A631 FEDC 7081 A1C1 C925 223D A639 002B FAF0 48A7 6880 9C40 0000 0348 4AF3 A000 0340 b) Ayuda: la quinta instrucción a ejecutar es inválida Z = N = C = V = 0 PC = 2532 R0 = 035D R1 = 034C R2 = 8000 R3 = A622 R4 = E7A0 R5 = 2521 R6 = 1A2B R7 = FFF4 5

0 1 2 3 4 5 6 7 8 9 A B C D E F 2520 F303 ABCD 2FE2 2530 8000 253E FEDC 7081 A1C1 C925 223D A639 002B FAF0 48A7 6880 2530 034B A631 5D40 5432 F205 A200 253C 2EFD 0053 0225 9200 2524 2624 2525 0000 9C40 c) Ayuda: la cuarta instrucción a ejecutar es inválida Z = N = C = V = 0 PC = 0358 R0 = 035F R1 = C2A3 R2 = 2940 R3 = 034F R4 = 27A3 R5 = 0122 R6 = 0352 R7 = 0359 0 1 2 3 4 5 6 7 8 9 A B C D E F 0340 FAF0 0053 0000 8EC0 0349 6925 0340 1A2B 0350 6023 0000 0000 A000 C925 034B 5E6F 0350 88C0 FFFF A1C1 A200 0348 0000 0225 5200 3621 0344 FBEE 2940 FFFF 563B FFFF F303 Ejercicio 18 Una cierta arquitectura posee 256 registros de 128 bits cada uno. Cada registro está subdividido en dos mitades denominadas R e I. De esta forma, si U 111 denota el registro 111 completo, entonces resulta U 111 = {R(U 111 ); I(U 111 )} donde R(U 111 ) y I(U 111 ) referencian los 64 MSb(bits más significativos) y los 64 LSb(bits menos significativos) de U 111 respectivamente. La memoria principal a la que accede el procesador es de 16GB, y la mínima unidad direccionable de la misma es de 64 bits. El procesador soporta sólo las siguientes 6 instrucciones: CLR d ;d 0 MOV p,q ;p q (Copia 128 bits) CNJ u,v ;u v = {R(v); I(v)} ADD u,v,w ;u v w = {R(v) + R(w); I(v) + I(w)} MUL u,v,w ;u v w = {R(v)R(w) I(v)I(w); R(v)I(w) + I(v)R(w)} SDV u,v,w ;u v/r(w) = {R(v)/R(w); I(v)/I(w)} Donde u, v, w son registros completos; p, q pueden ser registros completos de 128 bits o direcciones de memoria a partir de las cuales se almacenan 128 bits de datos; y d puede ser un registro completo o cualquiera de las dos mitades de un registro. Se pide: a) Diseñar un formato de instrucción de longitud fija de 64 bits b) Decir cuántos y cuáles modos de direccionamiento emplea el FI propuesto c) Ensamblar (en hexadecimal) la siguiente secuencia de 5 instrucciones empleando el FI propuesto: MOV U 111,[F 0h] ;U 111 [F 0h] CNJ U 112,U 111 ;U 112 U 111 MUL U 111,U 112,U 111 ;U 111 U 112 U 111 SDV U 111,U 112,U 111 ;U 111 U 112 /R(U 111 ) MOV [F 2h],U 111 ;[F 2h] U 111 d) Suponiendo que a partir de la dirección de memoria número 240 se encuentra almacenado un cierto número complejo Z (parte real de 64 bits seguida de parte imaginaria de 64 bits), derive una expresión matemática para el valor que quedaría almacenado en la posición de memoria 242 después de ejecutarse el fragmento anterior. Ejercicio 19 Considere una máquina muy sencilla, basada en una ALU que trabaja en (2, 16) con notación complemento, y cuyo repertorio y formato de instrucción son como sigue: Operación Efecto Flag Opcode ADD u, v [u] [u] + [v] Z ([u] + [v] = 0) Opcode: 00 TST u, v Z ([u] = [v]) Opcode: 01 MOV u, v [u] [v] Z ([v] = 0) Opcode: 10 BSS u Si Z = 1, P C u Z 1 (siempre) Opcode: 11 6

Opcode Dirección } {{ } } {{ u } } Dirección {{ v o 0000000 } 2 bits 7 bits 7 bits donde u y v son direcciones de memoria (la arquitectura tiene direccionamiento a palabra), Z es el flag de cero, y PC el registro de próxima instrucción. Sabiendo que, a partir del byte 0 de la memoria se encuentra almacenada la siguiente secuencia hexadecimal se pide: 03 88 00 06 40 05 C5 80 C0 00 03 8B 00 01 03 88 00 06 40 05 03 8B a) Definir la longitud de palabra más adecuada para la arquitectura (justificando detalladamente la elección), y decir cuánta memoria física podrá emplear la máquina como máximo. b) Suponiendo que se tratase de un fragmento de programa, desensamblar (escribiéndolo en lenguaje Assembler) el vuelco de memoria dado. c) Considerando que inicialmente el PC está en 0, explicar brevemente qué hace el fragmento. (Se espera aquí una explicación conceptual sencilla, por ejemplo: El programa calcula la suma de los 7 primeros números naturales, dejando el resultado en la dirección de memoria 4F ) d) Decir cuántos accesos a memoria deberán ser realizados en total durante la ejecución del fragmento. e) Determinar cuántos valores diferentes llegarán a presentarse en el bus de direcciones de la máquina durante dicha ejecución. 7

Arquitectura ORGA1 Descripción General Palabras de 16 bits. Direccionamiento a palabra. Espacio direccionable de 65536 palabras. Memoria destinada para entrada/salida en las direcciones F F F 0 (16) F F F F (16). 8 registros de uso general de 16 bits: R0..R7. Program Counter (PC) de 16 bits. Stack Pointer (SP) de 16 bits. Comienza en la dirección F F EF (16). Flags: Z, N, C, V (Zero, Negative, Carry, overflow). Todas las instrucciones alteran los Flags excepto MOV, CALL, RET, JMP y Jxx. De las que alteran los Flags, todas dejan C y V en 0 a excepción de ADD, SUB, CMP y NEG. Todas las operaciones en la ALU se realizan en notación complemento a 2. Formato de instrucción Tipo 1: Instrucciones de 2 operandos Cod Op Dest Fuente Const Dest Const Fuente 4 bits 6 bits 6 bits 16 bits (opcional) 16 bits (opcional) Operación Cod Op Efecto MOV 0001 Dest = Fuente ADD 0010 Dest = Dest + Fuente SUB 0011 Dest = Dest - Fuente AND 0100 Dest = Dest AND Fuente OR 0101 Dest = Dest OR Fuente CMP 0110 Modifica los Flags según el resultado de Dest - Fuente Tipo 2: Instrucciones de 1 operando. Tipo 2a: Instrucciones de 1 operando destino. Cod Op Dest Fuente Const Dest 4 bits 6 bits 000000 16 bits (opcional) Operación Cod Op Efecto NEG 1000 Dest = 0 - Dest NOT 1001 Dest = NOT Dest (bit a bit) Tipo 2b: Instrucciones de 1 operando fuente. Cod Op Dest Fuente Const Fuente 4 bits 000000 6 bits 16 bits (opcional) 8

Operación Cod Op Efecto JMP 1010 PC = Fuente CALL 1011 [SP] = PC, SP = SP - 1, PC = Fuente Formato de operandos Dest y Fuente Modo Codificación Resultado Inmediato 000000 c16 Directo 001000 [c16] Indirecto 011000 [[c16]] Registro 100rrr Regr Indirecto Registro 110rrr [Regr] Indexado 111rrr [Regr + c16] Tipo 3 Cod Op Cond Desplazamiento 1111 4 bits 8 bits Las instrucciones en este formato son de la forma Jxx(salto relativo condicional). Si al evaluar la condición de salto en los Flags el resultado es 1, el efecto es incrementar al PC con el valor de los 8bits de desplazamiento, representado en complemento a 2 de 8 bits. En caso contrario la instrucción no hace nada. Operación Cond Descripción Condición de Salto JE 0001 Igual / Cero Z JNE 1001 No igual not Z JLE 0010 Menor o igual Z or ( N xor V ) JG 1010 Mayor not ( Z or ( N xor V ) ) JL 0011 Menor N xor V JGE 1011 Mayor o igual not ( N xor V ) JLEU 0100 Menor o igual sin signo C or Z JGU 1100 Mayor sin signo not ( C or Z ) JCS 0101 Carry / Menor sin signo C JNEG 0110 Negativo N JVS 0111 Overflow V Tipo 4 Cod Op Bits no utilizados 4 bits 12 bits Operación CodOp Bits no utilizados Efecto RET 1100 0000 0000 0000 PC = [SP+1], SP = SP + 1 9