Professional Documents
Culture Documents
Qu es un repertorio de instrucciones? El conjunto completo de instrucciones que se realizan en la CPU. Cdigo mquina. Binario. Generalmente representado por un conjunto de cdigos de ensamblaje. Un punto de encuentro en que el diseador del computador y el programador pueden ver.
ORG. Y ARQ. DE COMPUTADORA II - CAP 2 ITZEL S. DE JUREZ
3
ITZEL S. DE JUREZ
2.1.1 ELEMENTOS Cada instruccin debe contener la informacin que necesita la CPU para la ejecucin. Elementos constitutivos de una instruccin maquina. Dichos elementos son:
ITZEL S. DE JUREZ
2.1.1 ELEMENTOS
ITZEL S. DE JUREZ
A donde van los operandos Los operandos fuentes y destino o resultado pueden estar en alguna de las siguientes reas:
Memoria principal (o memoria virtual, o bien cache) o Debe indicrsele la direccin Registro de la CPU o Cuando hay mas de un registro c/registro tendr asignado un nmero nico y la instruccin debe contener el nmero de registro deseado
ITZEL S. DE JUREZ
ITZEL S. DE JUREZ
Dentro del computador cada instruccin se representa por una secuencia de bits
Es difcil manejar representaciones binarias de las instrucciones de mquina por eso una prctica comn es utilizar las representaciones simblicas. ADD, SUB, LOAD, MPY, FIV, STOR Los Operandos tambin se representan de esta forma ADD R,Y
ORG. Y ARQ. DE COMPUTADORA II - CAP 2 ITZEL S. DE JUREZ
9
Los codops se representan por abreviaturas denominadas nemotcnicos ADD SUMAR SUB RESTAR MPY MULTIPLICAR DIV DIVIDIR LOAD CARGAR DATOS DE MEMORIA STORE ALMACENAR DATOS EN MEMORIA
ITZEL S. DE JUREZ
10
De acuerdo al tipo de instrucciones se clasifican: Procesamiento de datos: instrucciones artmticas y lgicas Almacenamiento de datos: instrucciones de memoria Transferencia de Datos: instrucciones de E/S Control: instrucciones de
o comprobacin
o bifurcacin
ITZEL S. DE JUREZ
11
Las instrucciones aritmticas proporcionan capacidad computacional para procesar datos numricos. Las instrucciones lgicas operan sobre los bits de una palabra en lugar de considerarlos como nmeros.
ITZEL S. DE JUREZ
12
De almacenamiento de datos: Instrucciones memoria Estas instrucciones permiten la transferencia entre memoria y registros.
ITZEL S. DE JUREZ
13
De transferencia de datos: Instrucciones de E/S. Estas instrucciones se necesitan para transferir programas y datos a memoria y devolver los resultados de los clculos al usuario.
ITZEL S. DE JUREZ
14
De control: instrucciones de comprobacin y de bifurcacin. Estas instrucciones se emplean para comprobar el valor de una palabra de datos o el estado de un clculo y las de bifurcacin para saltar a diferentes conjuntos de instrucciones dependiendo de la decisin tomada.
ITZEL S. DE JUREZ
15
Nmero de direcciones Un aspecto importante a ser tomado en cuenta es el nmero de instrucciones (cardinalidad) que incluir el conjunto de instrucciones. La tendencia es a tener un nmero "suficiente" para conseguir hacer bien el trabajo.
.
ITZEL S. DE JUREZ
16
Nmero de direcciones Contenidas en cada instruccin permite describir la arquitectura de un procesador. Las operaciones aritmticas y lgicas son las requieren mas operandos. Pueden ser unarias, binarias.
ITZEL S. DE JUREZ
17
Nmero de direcciones Una de las formas tradicionales de describir la arquitectura de un procesador es en trminos del nmero de direcciones contenidas en cada instruccin. Las operaciones aritmticas y lgicas son las que requieren ms operandos. X=A+B Y = not D Z = E or F X=A+B Y = not D Z = E or F ADD X, A, B NOT Y, D OR Z, E, F
ITZEL S. DE JUREZ
18
Nmero de direcciones Una de las formas tradicionales de describir la arquitectura de un procesador es en trminos del nmero de direcciones contenidas en cada instruccin. Las operaciones aritmticas y lgicas son las que requieren ms operandos. X=A+B Y = not D Z = E or F X=A+B Y = not D Z = E or F ADD X, A, B NOT Y, D OR Z, E, F
ITZEL S. DE JUREZ
19
Nmero de direcciones Instrucciones de tres direcciones: Ambos operandos y el destino del resultado estn contenidos de forma explcita en la palabra de la instruccin a=b+c Puede que haya otra instruccin ms adelante (generalmente implcita). No es comn. Necesita palabras de gran longitud para guardar todo.
ITZEL S. DE JUREZ
20
Instrucciones de tres direcciones ADD Y, A, B Y=A+B SUB Y, A, B Y=AB MPY T Y, A, B Y = A * B DIV Y, A, B Y=A/B
ITZEL S. DE JUREZ
21
Instrucciones de 2 direcciones: Una direccin es, a su vez, operando y resultado. a=a+b Reduce la longitud de la instruccin. Requiere trabajo adicional:
ADD A, B A=A+B SUB A, B A=A-B MPY A, B A=A*B DIV A, B A=A/B MOVE Y, A Y = A
ITZEL S. DE JUREZ
22
Instrucciones de una direccin: Las operaciones binarias tienen una direccin explcita y dos direcciones implcitas Generalmente utilizan un registro (acumulador). Normalmente en las primeras mquinas. Por ejemplo: ADD X => AC = AC + X
ADD A SUB A MPY A DIV A LOAD A STORE A AC=AC+A AC=AC-A AC=AC*A AC=AC/A AC=A A=AC
ITZEL S. DE JUREZ
23
Una direccin: Y = (A B) / (C + D * E) LOAD (cargar) MPY (multiplicar) ADD (sumar) STORE (memorizar) LOAD (cargar) SUB (restar) DIV (dividir) STORE (memorizar)
D E C Y A B Y Y
ITZEL S. DE JUREZ
24
Instrucciones de 0 (cero) direcciones: Todas las direcciones estn implcitas. Las operaciones estn basadas en pilas, se emplean dos operaciones especiales para manejar la pila (push, pop). Utiliza una pila (stack). Para realizar las operaciones hay que convertirlas en notacin postfija ( a b + ) Ejemplo: c = a + b o push a o push b
ITZEL S. DE JUREZ
25
Ms direcciones por instruccin: Instrucciones ms complejas. Ms registros: o Las operaciones entre los registros son ms rpidas. Menos instrucciones por programa.
ITZEL S. DE JUREZ
26
Menos direcciones por instruccin: Instrucciones menos complejas. Ms instrucciones por programa. La captacin / ejecucin de instrucciones es ms rpida.
las
ITZEL S. DE JUREZ
27
PUSH A
PILA[TOPE]=A TOPE=TOPE+l
POP A
TOPE=TOPE-l
C=PILA[TOPE]
ITZEL S. DE JUREZ
28
= (A B) / (C + D * E) PUSH (apilar) PUSH (apilar) SUB (restar) PUSH (apilar) PUSH (apilar) PUSH (apilar) MUL (multiplicar) ADD (sumar) DIV (dividir) POP (desapilar)
A B C D E
ITZEL S. DE JUREZ
29
2.2.1 DIRECCIONES
Las direcciones son de hecho un tipo de datos. En muchos casos debe realizarse algn clculo sobre la referencia a un operando de una instruccin a fin de determinar la direccin de memoria principal o virtual. En este contexto, las direcciones pueden considerarse como nmeros enteros sin signo.
2.2.2 NMEROS Todos los lenguajes maquina incluyen tipos de datos numricos. Incluso en el procesamiento de datos no numricos se necesitan nmeros que acten como contadores, longitudes de campos, etc. Una distincin importante entre los nmeros utilizados en las matemticas ordinarias y los almacenados en un computador, es que estos ltimos estn limitados. Esto es cierto en dos sentidos. En primer lugar, hay un limite para la magnitud de los nmeros representables en una maquina; en segundo lugar, en el caso de nmeros en coma flotante, su precisin esta limitada.
ITZEL S. DE JUREZ
32
2.2.2 NMEROS En los computadores son usuales tres tipos de datos numricos: Enteros o en coma fija En coma flotante En decimal.
ITZEL S. DE JUREZ
33
2.2.3 CARACTERES Una forma bastante comn de datos es el texto o secuencias de caracteres. Aunque la informacin textual sea mas conveniente para las personas, no puede ser almacenada o transmitida fcilmente en forma de caracteres por los sistemas de comunicacin y de procesamiento de datos. Tales sistemas estn diseados para datos binarios. Por lo tanto se han ideado diversos cdigos que permiten representar caracteres mediante secuencias de bits. Tal vez el primer ejemplo fue el cdigo Morse.
ORG. Y ARQ. DE COMPUTADORA II - CAP 2 ITZEL S. DE JUREZ
34
2.2.4 DATOS LGICOS Normalmente, cada palabra o cualquier otra unidad direccionable (byte, media, palabra, etc.) es tratada como una unidad de datos individual. Sin embargo, a veces es til considerar una unidad de n bits como n elementos o datos de 1 bit, donde cada elemento tiene un valor 1 o 0. Cuando los datos son vistos de esta manera, se consideran datos lgicos.
ITZEL S. DE JUREZ
35
2.2.4 DATOS LGICOS Esta representacin orientada a bits tiene dos ventajas. La primera es que a veces puede interesarnos almacenar una matriz de elementos binarios o booleanos, en la que cada elemento puede ser entonces utilizada mas eficientemente. En segundo, hay ocasiones en las que queremos manipular bits individuales de un dato.
ITZEL S. DE JUREZ
36
La codificacin de un nmero decimal se hace dependiendo de si el nmero es entero (punto fijo) o es fraccionario (punto flotante). En estos mtodos los nmeros se codifican atendiendo a su valor.
CDIGO DE CALIDAD ENTERA: Para representar un entero en una localizacin de almacenamiento es natural que se utilice su representacin binaria.
ITZEL S. DE JUREZ
37
Transferencias de datos. Aritmticas. Lgicas. De conversin. De E/S. De control del sistema. De control de flujo.
Tipo
Transferencias de datos
Descripcin Transfiere una palabra o un bloque desde una fuente a un destino. Store (memorizar) Transfiere una palabra desde el procesador a memoria. Transfiere una palabra desde Load (cargar o captar) memoria al procesador. Intercambia los contenidos de la Exchange (intercambiar) fuente y el destino. Clear (reiniciar o poner a 0) Transfiere una palabra de ceros al destino. Transfiere una palabra de unos al Set (poner a 1) destino. Push (introducir en la pila, Transfiere una palabra desde una fuente a la cabecera de la pila. apilar) Transfiere una palabra desde la Pop (extraer de la pila, cabecera de la pila a un destino. desapilar )
Tipo
Aritmticas
Descripcin Calcula la suma de dos operandos. Substract (restar) Calcula la diferencia de dos operandos. Multiply (multiplicar) Calcula el producto de dos operandos Divide (dividir) Calcula el cociente de dos operandos. Absolute (valor absoluto) Sustituye el operando por su valor absoluto Negate (opuesto) Cambia el signo del operando Increment (incrementar) Suma 1 al operando. Decrement (decrementar) Resta 1 del operando.
Tipo
Nombre de la operacin
AND (producto lgico, Y) OR (suma lgica, O) NOT (complemento) Exclusive-OR (OR-exclusiva) Test (compobar) Compare (comparar)
Descripcin
Realizan, bit a bit, la operacin lgica indicada. Comprueba la condicin especificada; pone los indicadores (flags) en funcin del resultado. Realiza la operacin lgica o aritmtica de dos o ms operandos, pone los indicadores en funcin del resultado. Instrucciones que fijan controles para proteccin, gestin de interrupciones, control de temporizador, etc. Desplaza el operando a la izquierda (derecha), introduciendo valores constantes por el otro extremo. Desplaza el operando a la izquierda (derecha) de forma cclica.
Lgicas Set Control Variables (fijar niveles de control) Shift (desplazamiento) Rotate (rotar) Jump (bifurcacin o salto)
Ruptura incondicional de flujo; carga el PC con la direccin especificada. Jump Conditional (salto condicional) Comprueba la condicin especificada; dependiendo de la condicin, carga el PC con la direccin indicada o no hace nada. Jump to subrutine (llamada a subrutina) Guarda la informacin de control del programa en una posicin conocida y salta a la direccin indicada.
Tipo
Descripcin
Sustituye el contenido del PC y de otros registros por los de la posicin conocida. Capta el operando de la direccin indicada y lo ejecuta como una instruccin; no modifica el PC. Incrementa el PC, de manera que se salte la instruccin siguiente. Comprueba la condicin indicada; realiza el salto implcito o no hace nada, dependiendo de la condicin. Detiene la ejecucin del programa. Detiene la ejecucin del programa; comprueba de forma repetitiva la condicin especificada; reanuda la ejecucin cuando satisface la condicin. No se ejecuta operacin alguna, pero la ejecucin del programa contina.
Control de flujo
Skip (salto implcito) Skip conditional (salto implcito condicional) Halt (parar) Wait (esperar)
Tipo
Nombre de la operacin
Input (entrada)
Descripcin
Transfiere datos desde un puerto o dispositivo de E/S al destino (memoria principal o registro del procesador).
Entrada / Salida
Output (salida)
Tipo
Nombre de la operacin
Translate (traducir)
Descripcin
Conversin
Traduccin de los valores de una seccin de memoria, basada en una tabla de correspondencia.
ITZEL S. DE JUREZ
45
ITZEL S. DE JUREZ
46
ITZEL S. DE JUREZ
47
ITZEL S. DE JUREZ
48
En una expresin infija con su correspondiente postfija, puede verse en primer lugar que: Los operandos mantienen el mismo orden en ambas notaciones. Hay que mover operadores y quitar parntesis (si existen). En postfija 13 7 3 * + 5 ( tiene como resultado 29.) Un primer algoritmo de traduccin es el siguiente: Aadir a la expresin un par de parntesis por cada operador. Esto significa aadir parntesis redundantes con las reglas de prioridad.
ITZEL S. DE JUREZ
49
Uno de los aspectos mas interesantes en el diseo de un computador es el diseo del conjunto de instrucciones de lenguaje de maquina. El repertorio de instrucciones define muchas de las funciones realizadas por la CPU y tiene pues un efecto significativo sobre la implementacin de la misma. El conjunto de instrucciones es el medio que posee el programador para controlar el CPU. En consecuencia deben considerarse las necesidades del programador a la hora de disear el repertorio.
ITZEL S. DE JUREZ
50
Aspectos mas importantes a considerar Repertorio o conjunto de operaciones: o Cuntas operaciones hay que considerar? o Qu pueden hacer? o Son complejas? Tipos de datos. o Los distintos tipos de datos con los que se efectan las operaciones Formatos de instrucciones: o Longitud del campo del cdigo de operaciones. o Nmero de direcciones. o Tamao de los distintos campos, etc.
ITZEL S. DE JUREZ
51
Registros: o Nmero de registros de la CPU disponibles. O que pueden ser referenciados por las instrucciones y su uso o En qu tipo de registros se pueden ejecutar qu tipo de operaciones? Modos de direccionamiento o Modos mediante los cuales pueden especificarse la direccin de un operando
ITZEL S. DE JUREZ
52
Especificar: o Fuente. o Destino. o Cantidad de datos. (palabra, byte). Diferentes instrucciones para diferentes transferencias: o Entre registros, de registro a memoria, de memoria a registro y de memoria a memoria. La posicin de un operando (memoria o registro) puede indicarse en: o La especificacin del cdigo de la operacin o en el operando.
ITZEL S. DE JUREZ
53
Add (sumar), Substract (restar), Multiply (multiplicar), Divide (dividir). Nmeros enteros con signo. Nmeros en coma flotante? Puede incluir: o Increment: incrementa en 1 el operando (a++). o Decrement: decrementa en 1 el operando (a--). o Negate: cambia el signo del operador (-a).
ITZEL S. DE JUREZ
54
Son aquellas que cambian el formato u operan sobre el formato de los datos. Un ejemplo es la conversin de decimal a binario.
Ejemplo: TR R1, R2, L Convierte a ASCII lo siguiente: Posiciones: 2100-2103 contienen F1 F9 F8 F4 R1 contien 2100 R2 contiene 1000
ITZEL S. DE JUREZ
55
Pueden ser las instrucciones especficas Puede ser OP usando instrucciones del movimiento de datos (memory mapped) Puede ser hecho por un regulador separado (DMA)
ITZEL S. DE JUREZ
56
Instrucciones privilegiadas La CPU necesita estar en estado especfico o Ring 0 on 80386+ o Kernel mode Para uso de los sistemas operativos
ITZEL S. DE JUREZ
57
Branch (Bifurcacin) o Branch to x if result is zero (Bifurcar a X si el resultado es 0) Skip (Salto) increment and skip if zero (incrementa y salta si es 0) ISZ Register1 Branch xxxx ADD A Subroutine call (Llamada a Procedimiento) interrupt call (llamada de la interrupcin )
ITZEL S. DE JUREZ
58
ITZEL S. DE JUREZ
59