Set de instrucciones del Simulador WinMIPS64
Instrucciones de Transferencia de Datos
lb rd, Inm(ri) Copia en rd un byte (8 bits) desde la direccin (Inm+ri) (con extensin del signo)
lbu rd, Inm(ri) Copia en rd un byte (8 bits) desde la direccin (Inm+ri) (sin extensin del signo)
sb rf, Inm(ri) Guarda los 8 bits menos significativos de rf en la direccin (Inm+ri)
lh rd, Inm(ri) Copia en rd un half-word (16 bits) desde la dir. (Inm+ri) (con extensin del signo)
lhu rd, Inm(ri) Copia en rd un half-word (16 bits) desde la dir. (Inm+ri) (sin extensin del signo)
sh rf, Inm(ri) Guarda los 16 bits menos significativos de rf a partir de la direccin (Inm+ri)
lw rd, Inm(ri) Copia en rd un word (32 bits) desde la dir. (Inm+ri) (con extensin del signo)
lwu rd, Inm(ri) Copia en rd un word (32 bits) desde la dir. (Inm+ri) (sin extensin del signo)
sw rf, Inm(ri) Guarda los 32 bits menos significativos de rf a partir de la direccin (Inm+ri)
ld rd, Inm(ri) Copia en rd un double word (64 bits) desde la direccin (Inm+ri)
sd rf, Inm(ri) Guarda rf a partir de la direccin (Inm+ri)
l.d fd, Inm(ri) Copia en fd un valor en punto flotante (64 bits) desde la direccin (Inm+ri)
s.d ff, Inm(ri) Guarda ff a partir de la direccin (Inm+ri)
mov.d fd, ff Copia el valor del registro ff al registro fd
mtc1 rf, fd Copia los 64 bits del registro entero rf al registro fd de punto flotante
mfc1 rd, ff Copia los 64 bits del registro ff de punto flotante al registro rd entero
cvt.d.l fd, ff Convierte a punto flotante el valor entero copiado al registro ff, dejndolo en fd
cvt.l.d fd, ff Convierte a entero el valor en punto flotante contenido en ff, dejndolo en fd
Instrucciones Aritmticas
dadd rd, rf, rg Suma rf con rg, dejando el resultado en rd (valores con signo)
daddi rd, rf, N Suma rf con el valor inmediato N, dejando el resultado en rd (valores con signo)
daddu rd, rf, rg Suma rf con rg, dejando el resultado en rd (valores sin signo)
daddui rd, rf, N Suma rf con el valor inmediato N, dejando el resultado en rd (valores con signo)
add.d fd, ff, fg Suma ff con fg, dejando el resultado en fd (en punto flotante)
dsub rd, rf, rg Resta rg a rf, dejando el resultado en rd (valores con signo)
dsubu rd, rf, rg Resta rg a rf, dejando el resultado en rd (valores sin signo)
sub.d fd, ff, fg Resta fg a ff, dejando el resultado en fd (en punto flotante)
dmul rd, rf, rg Mutiplica rf con rg, dejando el resultado en rd (valores con signo)
dmulu rd, rf, rg Mutiplica rf con rg, dejando el resultado en rd (valores sin signo)
mul.d fd, ff, fg Multiplica ff con fg, dejando el resultado en fd (en punto flotante)
ddiv rd, rf, rg Divide rf por rg, dejando el resultado en rd (valores con signo)
ddivu rd, rf, rg Divide rf por rg, dejando el resultado en rd (valores sin signo)
div.d fd, ff, fg Divide ff por fg, dejando el resultado en fd (en punto flotante)
slt rd, rf, rg Compara rf con rg, dejando rd=1 si rf es menor que rg (valores con signo)
slti rd, rf, N Compara rf con el valor inmediato N, dejando rd=1 si rf es menor que N (valores signo)
c.lt.d fd, ff Compara fd con ff, dejando flag FP=1 si fd es menor que ff (en punto flotante)
c.le.d fd, ff Compara fd con ff, dejando flag FP=1 si fd es menor o igual que ff (en punto flotante)
c.eq.d fd, ff Compara fd con ff, dejando flag FP=1 si fd es igual que ff (en punto flotante)
Instrucciones Lgicas
and rd, rf, rg Realiza un AND entre rf y rg (bit a bit), dejando el resultado en rd
andi rd, rf, N Realiza un AND entre rf y el valor inmediato N (bit a bit), dejando el resultado en rd
or rd, rf, rg Realiza un OR entre rf y rg (bit a bit), dejando el resultado en rd
ori rd, rf, N Realiza un OR entre rf y el valor inmediato N (bit a bit), dejando el resultado en rd
xor rd, rf, rg Realiza un XOR entre rf y rg (bit a bit), dejando el resultado en rd
xori rd, rf, N Realiza un XOR entre rf y el valor inmediato N (bit a bit), dejando el resultado en rd
Instrucciones de desplazamiento de bits
dsll rd, rf, N Desplaza a izquierda N veces los bits del registro rf, dejando el resultado en rd
dsllv rd, rf, rN Desplaza a izquierda rN veces los bits del registro rf, dejando el resultado en rd
dsrl rd, rf, N Desplaza a derecha N veces los bits del registro rf, dejando el resultado en rd
dsrlv rd, rf, rN Desplaza a derecha rN veces los bits del registro rf, dejando el resultado en rd
dsra rd, rf, N Igual que dsrl pero mantiene el signo del valor desplazado
dsrav rd, rf, rN Igual que dsrlv pero mantiene el signo del valor desplazado
Instrucciones de Transferencia de Control
j offN Salta a la direccin rotulada offN
jal offN Salta a la direccin rotulada offN y copia en r31 la direccin de retorno
jr rd Salta a la direccin contenida en el registro rd
beq rd, rf, offN Si rd es igual a rf, salta a la direccin rotulada offN
bne rd, rf, offN Si rd no es igual a rf, salta a la direccin rotulada offN
beqz rd, offN Si rd es igual a 0, salta a la direccin rotulada offN
bnez rd, offN Si rd no es igual a 0, salta a la direccin rotulada offN
bc1f offN Salta a la direccin rotulada offN si flag FP=0 ( false) (en punto flotante)
bc1t offN Salta a la direccin rotulada offN si flag FP=1 ( true) (en punto flotante)
Instrucciones de Control
nop Operacin nula
halt Detiene el simulador
Arquitectura de Computadoras 2015