Académique Documents
Professionnel Documents
Culture Documents
contenidos
1. Repertorio de instrucciones
Clasificacin de las instrucciones. Transferencia de datos. Instrucciones aritmticas.
Instrucciones lgicas y de manipulacin de bits. Desplazamiento y rotacin. Control de flujo.
Otras instrucciones
2. Aplicaciones del repertorio de instrucciones
Ejecucin alternativa. Ejecucin iterativa. Subrutinas
3. Formato de la instruccin mquina
Lenguaje ensamblador vs. cdigo mquina. Elementos constitutivos de una instruccin
mquina. Alternativas de diseo del formato de instruccin. Nmero de operandos explcitos
de una instruccin. Ejemplo de diseo del formato de la instruccin mquina. Ciclo de
instruccin
4. Arquitecturas CISC y RISC
Arquitecturas CISC. Problemas de las arquitecturas CISC. Caractersticas de las
arquitecturas RISC. Ventajas y desventajas de las arquitecturas RISC. Computadores CISC
y computadores RISC.
5. Ejemplos
MC68000. Arquitectura MIPS
1. repertorio de instrucciones
1. repertorio de instrucciones
Trasferencia de datos
Permiten el movimiento entre distintos dispositivos de almacenamiento del computador:
Reg Reg Mem Reg Pila Reg
Reg Mem Mem Mem Pila Mem
Reg Pila Mem Pila
Necesario especificar:
Tipo de movimiento
Direccin de operandos fuente y destino
Tamao de datos a mover (byte, palabra, doble palabra, ...)
N de elementos a mover (para movimientos mltiples)
1. repertorio de instrucciones
Instrucciones aritmticas
Permiten realizar operaciones de tipo aritmtico
Necesario especificar:
Tipo de operacin (suma, resta, multiplicacin, divisin, etc.)
Tipo de operandos y de aritmtica (con signo, sin signo, entera, punto flotante, BCD, ...)
tamao de datos sobre los que se opera
Direccin de operandos fuente y destino (0, 1, 2 3, segn el repertorio)
1. repertorio de instrucciones
BTST fnte, n Estado fnte(n) Activa estado segn valor del bit indicado
1. repertorio de instrucciones
Desplazamiento y rotacin
Permiten desplazar o rotar un operando a la decha. o la izda. un n determinado de bits
Necesario especificar:
Tipo de operacin (desplazamiento izda. o decha., rotacin izda. o decha., )
Tamao de datos sobre los que se opera (byte, palabra, doble palabra, ...)
Direccin del operando
N de bits a desplazar o rotar
1. repertorio de instrucciones
Control de flujo
Permiten romper la secuencia normal de ejecucin y saltar a una determinada direccin
especificada en la instruccin o implcita
Necesario especificar:
Direccin de siguiente instruccin a ejecutar si el salto es explcito
1. repertorio de instrucciones
Control de flujo (cont
(cont.)
.)
Las instrucciones de bifurcacin o salto condicional (Bcc), saltan o no en funcin de la
condicin especificada
Esta condicin se calcula a partir de los bits de condicin del registro de estado
Los bits de condicin se activan segn el resultado de las instrucciones ejecutadas anteriormente
10
1. repertorio de instrucciones
Otras instrucciones
En este grupo estn englobadas distintas instrucciones
Transformacin de datos
Cambian el formato de los datos, por ej. de decimal a binario
Manipulacin de direcciones
Permiten calcular la direccin efectiva de un operando y almacenarla en un registro o en
pila, p. ej.
LEA fnte, reg (Load effective address: reg Direccin de fnte)
PEA fnte (Push Effective Address: Pila Direccin de fnte)
Creacin de marcos de almacenamiento local
Permiten reservar espacio en la pila del sistema, p. ej:
LINK reg, #tam (Pila reg, reg SP, SP SP+tam)
UNLK reg (SP reg, reg Pila)
Control del sistema
Suelen ser instrucciones privilegiadas que usa el sistema operativo, p. ej.:
RESET, para reiniciar el computador (PC valor inicial)
RTE: retorno de excepcin o interrupcin
E/S
Para entrada y salida de datos entre el computador y dispositivos perifricos, p. ej.:
IN dir_perif, reg (reg perif)
OUT dir_perif, reg (perif reg )
simple doble
if a cc b then CMP a, b if a cc b then CMP a, b
bloque Bcc end blqthen Bcc else
end bloque else blqthen
end blqelse JMP end
end else blqelse
end
mltiple
CMP a0, b0
Bcc0 if1 tabla DATA etq0
if a0 cc0 b0 then bloque0 DATA etq1
bloque0 JMP end selectiva
else if a1 cc1 b1 then if1 CMP a1, b1 DATA etqn
bloque1 Bcc1 if2
bloque1 case a of
MOVE a, D1
else if an ccn bn then JMP end 0: bloque0
LEA tabla(D1*tam_dir), A1
bloquen 1: bloque1
JMP (A1)
else ifn CMP an, bn
etq0 bloque0
blqelse Bccn else n: bloquen
JMP end
end bloquen end
etq1 bloque1
JMP end
JMP end
else blqelse
end etqn bloquen
end
estructura y tecnologa de computadores
12
14
(D0) vlidas!
(SR)
sub LINK Ai, #-6 creacin del rea local de variables -6(Ai) loc3
PUSH SR preservacin del contexto
PUSH D0 -4(Ai) loc2
PUSH D1 -2(Ai) loc1
PUSH A0
bloque Ai
(puntero (Ai)
POP A0 restauracin del contexto
POP D1 de marco)
POP D0 etq
POP SR
UNLK Ai destruccin del rea local de variables 8(Ai)
RTS retorno al programa llamante EA(z)
PUSH x paso de parmetros actuales y 12(Ai)
PUSH y x 14(Ai)
PEA z
JSR sub posiciones relativas
etq ADD #8, SP liberacin del rea de parmetros 2k-1 de los parmetros
actuales y de las
variables locales
estructura y tecnologa de computadores
15
Anidamiento de subrutinas
MEMORIA
activacin de sub
marco de 2
variables locales
a la 2 activacin Ai
direccin de retorno a la 1 activacin y valor (puntero de
del puntero de marco en la 1 activacin marco)
parmetros actuales
de la 2 activacin
valores del contexto
del programa principal
activacin de sub
marco de 1
variables locales
a la 1 activacin
direccin de retorno al programa principal y valor anterior
del registro que actuar como puntero de marco
parmetros actuales
de la 1 activacin
2k-1
16
ADD J 0
ADD K
lenguaje
STORE N
101 0010001000000001
I DATA 2
J DATA 3 102 0001001000000010
lenguaje mquina
K DATA 4
N DATA 0 103 0001001000000011
104 0011001000000100
ensamblador cargador
201 0000000000000010
202 0000000000000011
203 0000000000000100
cdigo objeto cdigo ejecutable
204 0000000000000000
2k-1
enlazador
Lenguaje ensamblador
cdigo objeto cdigo objeto vs.
vs. cdigo mquina
18
Instruccin mquina: opcode op. fuente 1 op. fuente n op. destino instruc. siguiente
20
Pila (antes)
Pila (despus)
SP B
SP B+C
C
22
Solucin
Los operandos que permiten direccionamiento absoluto e indirecto de memoria requieren:
1 bit para especificar el modo de direccionamiento (m=0 absoluto; m=1 indirecto)
11 bits para especificar la direccin
Los operandos que permiten direccionamiento de registro en indirecto de registro requieren:
1 bit para especificar el modo de direccionamiento (m=0 de registro; m=1 indirecto de reg.)
3 bits para especificar el nmero de registro (ya que tenemos 8 registros)
24
varios varios
operandos resultados
interna a la CPU
operacin
cadena
o vector
Ciclo de instruccin
estructura y tecnologa de computadores
26
28
30
Computadores CISC
VAX 11 (desaparecido)
IBM Mainframes (serie 360, 370 y descendientes)
Intel 80x86 (i8086, i80286, i80386, i80486, Pentium, Pentium II, Pentium III)
Motorola MC68xxx (MC68000, MC68010, MC68020, MC68030, MC68040, MC68060 )
Computadores RISC
Motorola MC88000 (desaparecido)
MIPS Rxxxx (R2000, R3000, R4000, R5000, R8000, R10000, R12000)
Sun SPARC (SPARC, Super SPARC 2, Ultra SPARC I, Ultra SPARC II, Ultra SPARC III)
HP PA-RISC (7100, 7200, 7300, 8000, 8200, 8500)
PowerPC (601, 602, 603, 604, 620, 630, Power3)
DEC Alpha (21064, 21064a, 21066a, 21164, 21164a, 21264)
Intel 80860, Intel 80960
5. ejemplos: MC68000
32
5. ejemplos: MC68000
Byte 0 (8 bits)
Memoria (Ordenacin Big-Endian) $000000 7 0
Palabra
$000000 Byte $000000 Byte $000001
Palabra 0 (16 bits)
$000002 Byte $000002 Byte $000003
$000000 15 0
.
.
Doble Palabra 0 (32 bits)
.
$000000 31
. 0
.
BCD 0 (2 dgitos)
$FFFFFE Byte $FFFFFE Byte $FFFFFF
$000000 1 0
5. ejemplos: MC68000
Registros de la arquitectura
31 16 15 8 7 0
D0
Registros de datos (D0-D7)
D1
Ocho
Para operaciones con datos
D2
D3 Registros Tamaos: .b, .w, .l
D4 de Datos
D5 Registros de direcciones (A0-A6)
D6
D7 Para operaciones con direcciones
31 16 15 0
A0
Tamaos: .w, .l
A1
A2 Siete Punteros de pila (A7, A7)
Registros
A3
de Direcciones Uno para usuario (A7=USP)
A4
A5 Otro para supervisor (A7=SSP)
A6
Puntero de Pila
Registro de Estado (SR)
A7
(USP) de Usuario Parte ms significativa: slo
31 0 accesible en modo supervisor
A7' Puntero de Pila
(SSP) de Supervisor Parte menos significativa: cdigos
0 Registro de Estado de condicin (CCR)
15 8 7
(CCR = Reg. de
CCR SR
cdigos de condicin) Contador de programa (CP)
31 0 Contador Apunta a la siguiente instruccin a
PC de Programa ejecutar
34
5. ejemplos: MC68000
5. ejemplos: MC68000
Modos de direccionamiento
Modo de direccionamiento Clculo de EA Sintaxis
Direccionamiento directo de registro
Directo de registro de datos EA = Dn Dn
Directo de registro de direcciones EA = An An
Direccionamiento indirecto de registro
Indirecto de registro EA = (An) (An)
Indirecto de registro con postincremento (*) EA = (An); An + N An (An)+
Indirecto de registro con predecremento (*) An + N An; EA = (An) -(An)
Indirecto de registro con desplazamiento EA = (An) + d16 d16(An)
Indirecto de registro indexado con desplazamiento EA = (An) + (Ri) + d8 d8(An,Ri.X)
Direccionamiento absoluto
Absoluto corto EA = XXXX XXXX
Absoluto largo EA = XXXXXX XXXXXX
Direccionamiento relativo al contador de programa
Relativo al PC con desplazamiento EA = (PC) + d16 d16(PC)
Relativo al PC indexado con desplazamiento EA = (PC) + (Ri) + d8 d8(PC,Ri.X)
Direccionamiento inmediato Operando = XXXXXXXX #XXXXXXXX
NOTAS
EA = Direccin Efectiva Ri = Registro ndice (de datos o direcc.)
Dn = Registro de datos d8 = Desplazamiento de 8 bits
An = Registro de direcciones d16= Desplazamiento de 16 bits
N = 1 si .B, 2 si .W, 4 si .L PC = Contador de Programa
36
5. ejemplos: MC68000
Contenidos de una instruccin mquina EW para direccin efectiva fuente (si existe, una o dos palabras)
Palabra operacin (OW, siempre presente) EW para direccin efectiva destino (si existe, una o dos palabras)
Primera palabra de la instruccin
Cdigo de operacin
Modos de direccionamiento y Instrucciones de 0 operandos
tamao de los operandos Sintxis: OP
Palabras de extensin (EW, de 0 a 4) Instrucciones de 1 operando
Informacin adicional de los operandos
Sintxis: OP destino
Valor inmediato
Operacin: destino OP (destino)
Desplazamiento
Instrucciones de 2 operando
Codificacin modos de direccionamiento
Dos campos: Modo y Registro (6 bits) Sintxis: OP fuente, destino
Operacin: destino (fuente) OP (destino)
5. ejemplos: MC68000
EA 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Codificacin de los modos de modo Registro OW: codigo_op
direccionamiento Ejemplos: RTS
Directo de reg. de datos 000 N de reg. (Dn) NOP
Directo de reg. de direcciones 001 N de reg. (An)
Indirecto de reg. 010 N de reg. (An)
Indirecto de reg. con postincremt. 011 N de reg. (An) Instrucciones con un operando (2 formatos)
Indirecto de reg. con predecrem. 100 N de reg. (An)
Indirecto de reg. con desplaz. 101 N de reg. (An) 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Indirecto de reg. Index. con desplaz. 110 N de reg. (An) codigo_op tamao EA destino (a)
Absoluto corto 111 000 OW: modo registro
Ejemplos: SWAP R1
38
5. ejemplos: MC68000
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
OW: cod_op tamao EA destino EA fuente (a) OW: codigo_op registro 0 dato (a)
registro modo modo registro
Campo tamao Tamao operando
01 byte (.B) -128 dato 127
11 palabra (.W)
10 doble palabra (.L) Ejemplo: MOVEQ #100, D0
Ejemplos: MOVE.L D7, 4(A5)
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
OW: codigo_op dato codigo_op EA destino (b)
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 modo registro
OW: codigo_op registro modo_op EA fuente/destino (b)
modo registro 1 dato 8
Campo modo-op
Byte Palabra Doble pal. Operacin Ejemplo: ADDQ #2, D3
000 001 010 <registro> OP <EA> registro
100 101 110 <EA> OP <registro> EA SUBQ #1, D7
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
OW: codigo_op registro modo_op registro (c) OW: codigo_op condicion desplazamiento
5. ejemplos: MC68000
Repertorio de instrucciones
Notacin utilizada
CDIGOS DE CONDICIN:
* Afectado.
No afectado.
0 Puesto a 0 (clear).
1 Puesto a 1 (set).
U No definido.
Modo de Categoras de EA
direccionamiento ea dea mea cea aea adea amea acea
Dn X X X X
An X X
(An) X X X X X X X X
(An)+ X X X X X X
-(An) X X X X X X
d16(An) X X X X X X X X
d8(An,Ri.X) X X X X X X X X
XXXX X X X X X X X X
XXXXXX X X X X X X X X
d16(PC) X X X X
d8(PC,Ri.X) X X X X
#XXXXXXXX X X X
40
5. ejemplos: MC68000
Repertorio de instrucciones
MOVIMIENTO DE DATOS
Mnemotcnico Sintaxis Tamao Funcin XNZVC
EXG EXG Rm,Rn L RmRn
LEA LEA <cea>,An L direccin fuenteAn
LINK LINK An,#<d16> No An(SP); SPAn
SP+d16SP
MOVE MOVE.t <ea>,<adea> L,W,B (fuente)destino **00
MOVE from SR MOVE SR,<adea> W SRdestino
MOVE to CCR MOVE <adea>,CCR W (fuente)CCR *****
MOVE to SR MOVE <adea>,SR W IF S=1 SRdestino *****
ELSE EXCEPCIN
MOVE USP MOVE USP,An L IF S=1 USPAn *****
ELSE EXCEPCIN
MOVE USP MOVE An,USP L IF S=1 AnUSP *****
ELSE EXCEPCIN
MOVEA MOVEA.t <ea>,An L,W (fuente)destino .....
MOVEM MOVEM.t <lista_reg>,<cea> L,W registrosdestino
MOVEM.t <lista_reg>,(An)
MOVEM MOVEM.t <cea>,<lista_reg> L,W (fuente)registros
MOVEM.t (An)+,<lista_reg>
MOVEP MOVEP.t Dn,d(Am) L,W (fuente)destino
MOVEP.t d(Am),Dn
MOVEQ MOVEQ #<d8>,Dn L dato (8 bits)destino **00
PEA PEA <cea> L direccin(SP)
SWAP SWAP Dn W Dn[31:16]Dn[15:0] **0 0
UNLK UNLK An No AnSP; (SP)+An
5. ejemplos: MC68000
ARITMTICA ENTERA
Mnemotcnico Sintaxis Tamao Funcin XNZVC
ADD ADD.t <ea>,Dn L,W ,B (fuente)+(destino)destino *****
ADD.t Dn, <amea>
ADDA ADDA.t <ea>,An L,W (fuente)+(destino)destino
ADDI ADDI.t # <dato>,<adea> L,W ,B Dato+(destino)destino *****
ADDQ ADDQ.t# <d3>, <aea> L,W ,B d3+(destino)destino *****
ADDX ADDX.t Dm,Dn o L,W ,B (fuente)+(destino)+Xdestino *****
ADDX.t (Am),(An)
CLR CLR.t <adea> L,W ,B 0destino 0100
CMP CMP.t <ea>,Dn L,W ,B (destino)(fuente);activa CCR ****
CMPA CMPA.t <ea>,An L,W (destino)(fuente);activa CCR ****
CMPI CMPI.t #<Dato>,<adea> L,W ,B (destino)Dato; activa CCR ****
CMPM CMPM.t (Am)+,(An) L,W ,B (destino)(fuente);activa CCR ****
DIVS DIVS <dea>,Dn W (destino)/(fuente)destino; ***0
Cocientedestino[15:0],
Restodestino[31:16]
DIVU DIVU <dea>,Dn W (destino)/(fuente)destino; ***0
Cocientedestino[15:0],
Restodestino[31:16]
EXT EXT.t Dn L,W Dn(Extend en signo)Dn **00
MULS MULS <dea>,Dn W (fuente)*(destino)destino **00
MULU MULU <dea>,Dn W (fuente)*(destino)destino **00
NEG NEG.t <adea> L,W ,B 0(destino)destino *****
NEGX NEGX.t <adea> L,W ,B 0(destino)Xdestino *****
SUB SUB.t <ea>,Dn L,W ,B (destino)(fuente)destino *****
SUB.t Dn, <amea>
SUBA SUBA.t <ea>,An L,W (destino)(fuente)destino
SUBI SUBI.t # <dato>,<adea> L,W ,B (destino)Datodestino *****
SUBQ SUBQ.t# <d3>, <aea> L,W ,B (destino)d3destino *****
SUBX SUBX.t Dm,Dn L,W ,B (destino)(fuente)Xdestino *****
SUBX.t (Am),(An)
TAS TAS <adea> B Test (destino)CCR; **00
1destino[bit 7]
TST TST <adea> L,W ,B Test (destino)CCR **00
42
5. ejemplos: MC68000
OPERACIONES LGICAS
Mnemotcnico Sintaxis Tamao Funcin XNZVC
AND AND.t <dea>,Dn L,W,B (fuente)<AND>(destino)destino **00
AND.t Dn,<amea>
ANDI ANDI.t #<dato>,<adea> L,W,B dato<AND>(destino)destino **00
ANDI to CCR ANDI #<d8>,CCR B d8<AND>CCR CCR *****
ANDI to SR* ANDI #<d16>,SR W IF S=1 d16 <AND>SRSR *****
ELSE EXCEPCIN
EOR EOR.t Dn,<adea> L,W,B (fuente)<XOR>(destino)destino **00
EORI EORI.t #<dato>,<adea> L,W,B dato<XOR>(destino)destino **00
EORI to CCR EORI #<d8>,CCR B d8<XOR>CCR CCR *****
EORI to SR* EORI #<d16>,SR W IF S=1 d16<XOR>SRSR *****
ELSE EXCEPCIN
NOT NOT.t <adea> L,W,B <NOT>(destino)destino **00
OR OR.t <dea>,Dn L,W,B (fuente)<OR>(destino)destino **00
OR.t Dn,<amea>
ORI ORI.t #<dato>, <adea> L,W,B dato<OR>(destino)destino **00
ORI to CCR ORI #<d8>,CCR B d8<OR>CCRCCR *****
ORI to SR* ORI #<d16>,SR W IF S=1 d16<OR>SRSR *****
ELSE EXCEPCIN
DESPLAZAMIENTOS Y ROTACIONES
Mnemotcnico Sintaxis Tamao Funcin XNZVC
ASL/ASR ASL/ASR Dm,Dn L,W,B (destino) desplaz. aritmet. de *****
ASL/ASR #<d3>,Dn <num> bitsdestino
ASL/ASR ASL/ASR<amea> W (contador (destino) desplaz. aritmet. de *****
desplaz.=1) 1 bit destino
LSL/LSR Igual que ASL/ASR Idem (destino) desplaz. logico de ***0*
<num> (o 1)bitsdestino
ROL/ROR Igual que ASL/ASR Idem (destino) rotado **0*
<num> (o 1)bitsdestino
ROXL/ROXR Igual que ASL/ASR Idem (destino) rotado (con exten.) ***0*
<num> (o 1)bitsdestino
5. ejemplos: MC68000
MANIPULACIN DE BITS
Mnemotcnico Sintaxis Tamao Funcin XNZVC
BCHG BCHG Dm,Dn o L (bit mod 32) <NOT>(destino[bit])flag Z; *
BCHG #<d8>,Dn <NOT>(destino[bit])destino[bit]
BCHG BCHG Dm, <amea> o B (bit mod 8) Igual *
BCHG #<d8>,<amea>
BCLR Igual que BCHG <NOT>(destino[bit])flag Z; *
0destino[bit]
BSET Igual que BCHG <NOT>(destino[bit])flag Z; *
1destino[bit]
BTST BTST Dm,Dn o L (bit mod 32) <NOT>(destino[bit])flag Z *
BTST #<d8>,Dn
BTST BTST Dm,<mea> o B (bit mod 8) Igual *
BTST #<d8>,<mea>
44
5. ejemplos: MC68000
OPERACIONES EN BCD
Mnemotcnico Sintaxis Tamao Funcin XNZVC
ABCD ABCD Dm,Dn B (fuente10)+(destino10)+X *U*U*
ABCD (Am),(An) destino10
NBCD NBCD<adea> B 0(destino10)Xdestino10 *U*U*
SBCD SBCD Dm,Dn B (fuente10)(destino10)X *U*U*
SBCD (Am),(An) destino10
46
Tipos de datos
Enteros Reales en punto flotante
Tamao Byte (8 bits) Simple precisin (32 bits)
Tamao Media palabra (16 bits) Doble precisin (64 bits)
Tamao Palabra (32 bits)
Bit signo
Memoria (Ordenacin Little-Endian)
Byte $0 (8 bits)
$0 0 7
Media palabra $0 Media palabra $2
Palabra
Media palabra $0 (16 bits)
$00000000 Byte $0 Byte $1 Byte $2 Byte $3
$0 0 15
$00000004 Byte $4 Byte $5 Byte $6 Byte $7
Palabra $0 (32 bits)
Media palabra $4 . Media palabra $6 $0 0 31
.
. Real Simple precisin $0 (32 bits)
. $0 0 31
.
Real Doble Precisin $0 (64 bits)
$FFFFFFFC $0 0
$4 63
Directo op rs rt rd
de registro
registro
Inmediato op rs rt Inmed.
registro +
Indirecto con
op rs rt Inmed.
desplazamiento Memoria
relativo a PC
PC +
48
Instruccin de tipo J
6 26 Instrucciones de salto
op Direccin destino Ej.: J dir PC dir
Repertorio de instrucciones
Instruccin de movimiento de datos
Instruccin Significado Ejemplo Operacin
LB Load byte LB $2, 40($3) R2 [24-31] Mem(40+(R3))8; R1[0-23](signo(Mem(40+(R3))))24
LBU Load byte unsigned LBU $2, 40($3) R2 [24-31] Mem(40+(R3))8; R1[0-23](0)24
LH Load half word LH $2, 40($3) R2 [16-31] Mem(40+(R3))16; R1[0-15](signo(Mem(40+(R3))))16
LHU Load half word unsigned LHU $2, 40($3) R2 [16-31] Mem(40+(R3))16; R1[0-15](0)16
LW Load word LW $2, 40($3) R2 [0-31] Mem(40+(R3))32
LF Load Float LF $2, 40($3) F2 [0-31] Mem(40+(R3))32
LD Load double float LD $2, 40($3) F2 [0-31], F3 [0-31] Mem(40+(R3))64
SB Store byte SB 40($3),$2 Mem(40+(R3))8 R2 [24-31]
SH Store half word SB 40($3),$2 Mem(40+(R3))16 R2 [16-31]
SW Store word SB 40($3),$2 Mem(40+(R3))32 R2 [0-31]
SF Store float SB 40($3),$2 Mem(40+(R3))32 F2 [0-31]
SD Store double float SB 40($3),$2 Mem(40+(R3))64 F2 [0-31], F3 [0-31]
50
Repertorio de instrucciones
Instruccin de aritmtica entera, lgicas y desplazamiento
Instruccin Significado Ejemplo Operacin
ADD/ADDU Suma con/sin signo ADD $1,$2,$3 R1 (R2) + (R3)
ADDI/ADDIU Suma inmediato con/sin signo ADDI $1,$2,#5 R1 (R2) + 5
SUB/SUBU Resta con/sin signo SUB $1,$2,$3 R1 (R2) - (R3)
SUBI/SUBIU Resta inmediato con/sin signo SUBI $1,$2,#5 R1 (R2) - 5
MULT/MULTU Multiplicacin con/sin signo MULT $1,$2,$3 R1 (R2) * (R3)
DIV/DIVU Divisin con/sin signo DIV $1,$2,$3 R1[0-15] Cociente ((R2) / (R3))
R1[16-31] Resto ((R2) mod (R3))
AND Y lgica AND $1,$2,$3 R1 (R2) AND (R3)
ANDI Y lgica con inmediato ANDI $1,$2,#5 R1 (R2) AND 5
OR O lgica OR $1,$2,$3 R1 (R2) OR (R3)
ORI O lgica con inmediato ORI $1,$2,#5 R1 (R2) OR 5
XOR O exclusiva XOR $1,$2,$3 R1 (R2) XOR (R3)
XORI O exclusiva con inmediato XORI $1,$2,#5 R1 (R2) XOR 5
SLL/SRL Desplaz. lgico Izda./decha. SLL $1,$2,$3 R1 (R2) << (R3)
SLLI/SRLI Desp. Lg. Izda./decha. con inmed. SLLI $1,$2,#4 R1 (R2) << 4
SRA Desplaz. aritmtico derecha SRA $1,$2,$3 R1 (R2) << (R3) (mantiene signo)
SRAI Desplaz. aritm. Dcha. con inmed. SRA $1,$2,#4 R1 (R2) << 4 (mantiene signo)
Scc * Set condicional SLT $1,$2,$3 if (R2)<(R3) then R1 1, else R1 0
SccI * Set condicional con inmediato SEQI $1,$2,#0 if (R2) = 0 then R1 1, else R1 0
Repertorio de instrucciones
Instruccin de control de flujo
Instruccin Significado Ejemplo Operacin
J Salto (jump) J dir PC dir
JR Salto con registro JR $2 PC (R2)
BEQZ Bifurcacin condic. si igual a cero BEQZ dir, $4 if (R4) = 0 then PC (R4)
BNEQZ Bifurcacin condic. si distinto de cero BNEQZ dir, $4 if (R4) 0 then PC (R4)
JAL Salto y link JAL dir R31 (PC) + 4; PC dir
JALR Salto y link con registro JALR dir, $2 R31 (PC) + 4; PC (R2)
TRAP Provoca una excepcin
RFE Retorno de excepcin