3.1.2 Repertorio de instrucciones y formato de la instrucción máquina
3.1.2 Repertorio de instrucciones y formato de la
instrucción máquina
Parte III. Diseño del procesador
Módulo 3.1 Lenguaje máquina y ensamblador
Ingeniería Técnica en Informática
Facultad de Informática - Universidad Complutense de Madrid
3.1.2 Repertorio de instrucciones y formato de la instrucción máquina
Índice
1 Repertorio de instrucciones
Clasificación de las instrucciones
2 Aplicaciones del repertorio de instrucciones
Ejecución alternativa
Ejecución iterativa
Subrutinas
3 Formato de la instrucción máquina
Alternativas de diseño
Número de operandos explícitos
Ejemplos
4 Arquitecturas CISC y RISC
Arquitecturas CISC
Arquitecturas RISC
Ejempos
3.1.2 Repertorio de instrucciones y formato de la instrucción máquina
Repertorio de instrucciones
Clasificación de las instrucciones
Clasificación de las instrucciones (1/2)
3.1.2 Repertorio de instrucciones y formato de la instrucción máquina
Repertorio de instrucciones
Clasificación de las instrucciones
Clasificación de las instrucciones (2/2)
Transferencia de datos, permiten el movimiento entre distintos
dispositivos de almacenamiento del computador
Aritméticas, permiten realizar operaciones de tipo aritmético
Lógicas y de manipulación de bits, permiten realizar operaciones
lógicas, bit a bit, entre los operandos o manipular un bit del
operando
Desplazamiento y rotación, permiten desplazar o rotar un operando
a la decha. o la izda. un no determinado de bits
Control de flujo, permiten romper la secuencia normal de ejecución
Otras instrucciones
Transformación de datos
Manipulación de direcciones
Creación de marcos de almacenamiento local
Control del sistema
Entrada / Salida
3.1.2 Repertorio de instrucciones y formato de la instrucción máquina
Repertorio de instrucciones
Clasificación de las instrucciones
Transferencia de datos (1/2)
3.1.2 Repertorio de instrucciones y formato de la instrucción máquina
Repertorio de instrucciones
Clasificación de las instrucciones
Transferencia de datos (2/2)
Permiten el movimiento entre distintos dispositivos de
almacenamiento del computador (registros, memoria y pila)
Necesario especificar
Tipo de movimiento
Dirección de operandos fuente y destino
Tamaño de datos a mover (byte, palabra, doble palabra, ...)
No de elementos a mover (para movimientos múltiples)
Instrucción
MOVE fnte, dest
Operación
dest ← fnte
LOAD Ri, dir
STORE dir, Ri
PUSH fnte
POP dest
MOVEM fnte, dest, n
Ri ← dir
Ri ← dir
Pila ← fnte
dest ← Pila
dest0 ← fnte0
destn−1 ← fnten−1
Descripción
Transfiere palabra de reg. a reg.,
reg. a mem, mem. a reg o mem. a
mem. (fuente= mem. o reg.; des-
tino = mem. o reg.)
Transfiere palabra de memoria a
registro
Transfiere palabra de registro a
memoria
Transfiere palabra de mem. o reg.
a la cabecera de pila
Transfiere palabra de cabecera de
pila a mem. o reg.
Transfiere n palabras a partir de
una dir. inicial fuente y una dir.
inicial destino
3.1.2 Repertorio de instrucciones y formato de la instrucción máquina
Repertorio de instrucciones
Clasificación de las instrucciones
Instrucciones aritméticas (1/2)
3.1.2 Repertorio de instrucciones y formato de la instrucción máquina
Repertorio de instrucciones
Clasificación de las instrucciones
Instrucciones aritméticas (2/2)
Permiten realizar operaciones de tipo aritmético
Necesario especificar
Tipo de operación (suma, resta, multiplicación, división, etc.)
Tipo de operandos y de aritmética (con signo, sin signo, entera,
punto flotante, BCD, ...)
Tamaño de datos sobre los que se opera
Dirección de operandos fuente y destino (0, 1, 2 ó 3, según el
repertorio)
Instrucción
ADD fnt1,fnt2,dest
SUB fnt1,fnt2,dest
MULT fnt1,fnt2,dest
DIV fnt1,fnt2,dest
NEG fnte,dest
ABS fnte,dest
INC fnte,dest
DEC fnte,dest
COMP fnt1,fnt2
Descripción
Suma dos operandos
Resta dos operandos
Operación
dest←fnt1+fnt2
dest←fnt1-fnt2
dest←fnt1×fnt2 Multiplica dos operandos
dest←fnt1/fnt2
dest←-fnte
dest←abs(fnte)
dest←fnte+1
dest←fnte-1
fnt1-fnt2
Divide dos operandos
Cambia de signo al operando
Obtiene el valor absoluto
Suma 1 al operando
Resta 1 al operando
Resta y activa los bits de
estado según resultado
3.1.2 Repertorio de instrucciones y formato de la instrucción máquina
Repertorio de instrucciones
Clasificación de las instrucciones
Instrucciones lógicas y de manipulación de bits (1/2)
3.1.2 Repertorio de instrucciones y formato de la instrucción máquina
Repertorio de instrucciones
Clasificación de las instrucciones
Instrucciones lógicas y de manipulación de bits (2/2)
Permiten realizar operaciones lógicas, bit a bit, entre los operandos
o manipular un bit del operando
Necesario especificar
Tipo de operación (AND, OR, NOT, Bit Clear, Bit Set, etc)
Tamaño de datos sobre los que se opera (byte, palabra, doble palabra,
...)
Dirección de operandos fuente y destino (0, 1, 2 ó 3, según el
repertorio)
El número de bit en las instrucciones de manipulación de bit
Instrucción
AND fnt1,fnt2,dest
OR fnt1,fnt2,dest
NOT fnte,dest
XOR fnt1,fnt2,dest
BCLR dest,n
BSET dest,n
BTEST fnte,n
Descripción
Operación
dest←fnt1∧fnt2
Y lógica
dest←fnt1∨fnt2 O lógica
dest← ¬fnte
Negación
dest←fnt1⊕fnt2 O exclusiva
dest(n)←0
dest(n)←1
Estado←fnte(n)
Pone a 0 el bit n
Pone a 1 el bit n
Activa flag según bit n
3.1.2 Repertorio de instrucciones y formato de la instrucción máquina
Repertorio de instrucciones
Clasificación de las instrucciones
Desplazamiento y rotación (1/2)
3.1.2 Repertorio de instrucciones y formato de la instrucción máquina
Repertorio de instrucciones
Clasificación de las instrucciones
Desplazamiento y rotación (2/2)
Permiten desplazar o rotar un operando a la decha. o la izda. un no
determinado de bits
Necesario especificar
Tipo de operación (desplazamiento izda. o decha., rotación izda. o
decha., )
Tamaño de datos sobre los que se opera (byte, palabra, doble palabra,
...)
Dirección del operando
No de bits a desplazar o rotar
Instrucción
Operación
LSL fnte,n
LSR fnte,n
ASL fnte,n
ASR fnte,n
RL fnte,n
RR fnte,n
Descripción
Desp. lógico izda. n bits
Desp. lógico dcha. n bits
Desp. aritm. izda. n bits
Desp. aritm. dcha. n bits
Rotación izquierda n bits
Rotación derecha n bits
3.1.2 Repertorio de instrucciones y formato de la instrucción máquina
Repertorio de instrucciones
Clasificación de las instrucciones
Control de flujo (1/4)
3.1.2 Repertorio de instrucciones y formato de la instrucción máquina
Repertorio de instrucciones
Clasificación de las instrucciones
Control de flujo (2/4)
Permiten romper la secuencia normal de ejecución y saltar a una
determinada dirección especificada en la instrucción o implícita
Necesario especificar
Dirección de siguiente instrucción a ejecutar si el salto es explícito
Las instrucciones de bifurcación o salto condicional (Bcc), saltan o
no en función de la condición especificada (cc)
Esta condición se calcula a partir de los bits de condición del
registro de estado
Los bits de condición se activan según el resultado de las
instrucciones que se detallan en las siguientes tablas
3.1.2 Repertorio de instrucciones y formato de la instrucción máquina
Repertorio de instrucciones
Clasificación de las instrucciones
Control de flujo (3/4)
Instrucción Operación
JMP dir
Bcc dir
JSR dir
RTS
SKIP n
NOP
PC←dir
if(cc) PC←dir
else PC←PC+longInstr
Pila←(PC,STR)
PC←dir
(PC,STR)←Pila
PC←PC+n×longInstr
PC←PC+longInstr
Descripción
Salta (Jump) a dir
Bifurca (Branch) a dir
si (cc) es cierta
Salto a subrutina
Guarda PC y estado
Retorno subrutina, recupera PC y STR
Salta n instrucciones
No hace nada, siguiente instr.
3.1.2 Repertorio de instrucciones y formato de la instrucción máquina
Repertorio de instrucciones
Clasificación de las instrucciones
Control de flujo (4/4)
cc
EQ
Nombre
Igual (Equal)
NEQ No igual (No equal)
GT
GE
LT
LE
Z
NZ
Mayor que (Greater Than)
Mayor o igual (Gr. or Eq.)
Menor que (Less Than)
Menor o igual (Les.or Eq.)
Cero (Zero)
No cero (No Zero)
Cierta si
En una comparación previa los operandos son
iguales
En una comparación previa los operandos son
distintos
En una comparación previa el primer operan-
do es mayor que el segundo
En una comparación previa el primer operan-
do es mayor o igual que el segundo
En una comparación previa el primer operan-
do es menor que el segundo
En una comparación previa el primer operan-
do es menor o igual que el segundo
El resultado de una operación anterior es cero
El resultado de una operación anterior es dis-
tinto de cero
cc Nombre
Positivo
P
N
C
Negativo
Acarreo (Carry)
NC No acarreo (No Carry)
V
Desbord. (Overflow)
NV No desbord. (No Overfl.)
T
F
Verdad (True)
Falso (False)
Cierta si
El resultado de una operación anterior es po-
sitivo
El resultado de una operación anterior es ne-
gativo
El resultado de una operación anterior ha
producido acareo
El resultado de una operación anterior no ha
producido acareo
El resultado de una operación anterior ha
producido desbordamiento
El resultado de una operación anterior no ha
producido desbordamiento
Siempre cierta
Siempre falsa
3.1.2 Repertorio de instrucciones y formato de la instrucción máquina
Repertorio de instrucciones
Clasificación de las instrucciones
Otras instrucciones (1/2)
Transformación de datos
Manipulación de direcciones
Cambian el formato de los datos, por ej. de decimal a binario
Permiten calcular la dirección efectiva de un operando y almacenarla
en un registro o en pila
LEA fnt,reg
PEA fnt
(Load effective address: reg ← Dir de fnt)
(Push Effective Address: Pila ← Dir de fnte)
Creación de marcos de almacenamiento local
Permiten reservar espacio en la pila del sistema, p. ej:
LINK reg,#tam
UNLK reg
(Pila←reg, reg←SP, SP←SP+tam)
(SP←reg, reg←Pila)
3.1.2 Repertorio de instrucciones y formato de la instrucción máquina
Aplicaciones del repertorio de instrucciones
Ejecución alternativa
Ejecución alternativa
3.1.2 Repertorio de instrucciones y formato de la instrucción máquina
Repertorio de instrucciones
Clasificación de las
Comentarios de: 3.1.2 Repertorio de instrucciones y formato de la instrucción máquina - Parte III. Diseño del procesador - Módulo 3.1 Lenguaje máquina y ensamblador (0)
No hay comentarios