Logo Studenta

Set de Instrucciones WINIMIPS64

¡Estudia con miles de materiales!

Vista previa del material en texto

Set de instrucciones del Simulador WinMIPS64 
Arquitectura de Computadoras 2015 
Instrucciones de Transferencia de Datos 
lb rd, Inm(ri) Copia en rd un byte (8 bits) desde la dirección (Inm+ri) (con extensión del signo) 
lbu rd, Inm(ri) Copia en rd un byte (8 bits) desde la dirección (Inm+ri) (sin extensión del signo) 
sb rf, Inm(ri) Guarda los 8 bits menos significativos de rf en la dirección (Inm+ri) 
lh rd, Inm(ri) Copia en rd un half-word (16 bits) desde la dir. (Inm+ri) (con extensión del signo) 
lhu rd, Inm(ri) Copia en rd un half-word (16 bits) desde la dir. (Inm+ri) (sin extensión del signo) 
sh rf, Inm(ri) Guarda los 16 bits menos significativos de rf a partir de la dirección (Inm+ri) 
lw rd, Inm(ri) Copia en rd un word (32 bits) desde la dir. (Inm+ri) (con extensión del signo) 
lwu rd, Inm(ri) Copia en rd un word (32 bits) desde la dir. (Inm+ri) (sin extensión del signo) 
sw rf, Inm(ri) Guarda los 32 bits menos significativos de rf a partir de la dirección (Inm+ri) 
ld rd, Inm(ri) Copia en rd un double word (64 bits) desde la dirección (Inm+ri) 
sd rf, Inm(ri) Guarda rf a partir de la dirección (Inm+ri) 
l.d fd, Inm(ri) Copia en fd un valor en punto flotante (64 bits) desde la dirección (Inm+ri) 
s.d ff, Inm(ri) Guarda ff a partir de la dirección (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, dejándolo en fd 
cvt.l.d fd, ff Convierte a entero el valor en punto flotante contenido en ff, dejándolo en fd 
 
Instrucciones Aritméticas 
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 Lógicas 
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 dirección rotulada offN 
jal offN Salta a la dirección rotulada offN y copia en r31 la dirección de retorno 
jr rd Salta a la dirección contenida en el registro rd 
beq rd, rf, offN Si rd es igual a rf, salta a la dirección rotulada offN 
bne rd, rf, offN Si rd no es igual a rf, salta a la dirección rotulada offN 
beqz rd, offN Si rd es igual a 0, salta a la dirección rotulada offN 
bnez rd, offN Si rd no es igual a 0, salta a la dirección rotulada offN 
bc1f offN Salta a la dirección rotulada offN si flag FP=0 (ó false) (en punto flotante) 
bc1t offN Salta a la dirección rotulada offN si flag FP=1 (ó true) (en punto flotante) 
 
Instrucciones de Control 
nop Operación nula 
halt Detiene el simulador

Continuar navegando