Set de instrucciones del Simulador WinMIPS64 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 daddi rd, rf, N daddu rd, rf, rg daddui rd, rf, N add.d fd, ff, fg dsub rd, rf, rg dsubu rd, rf, rg sub.d fd, ff, fg dmul rd, rf, rg dmulu rd, rf, rg mul.d fd, ff, fg ddiv rd, rf, rg ddivu rd, rf, rg div.d fd, ff, fg slt rd, rf, rg slti rd, rf, N c.lt.d fd, ff c.le.d fd, ff c.eq.d fd, ff Suma rf con rg, dejando el resultado en rd (valores con signo) Suma rf con el valor inmediato N, dejando el resultado en rd (valores con signo) Suma rf con rg, dejando el resultado en rd (valores sin signo) Suma rf con el valor inmediato N, dejando el resultado en rd (valores con signo) Suma ff con fg, dejando el resultado en fd (en punto flotante) Resta rg a rf, dejando el resultado en rd (valores con signo) Resta rg a rf, dejando el resultado en rd (valores sin signo) Resta fg a ff, dejando el resultado en fd (en punto flotante) Mutiplica rf con rg, dejando el resultado en rd (valores con signo) Mutiplica rf con rg, dejando el resultado en rd (valores sin signo) Multiplica ff con fg, dejando el resultado en fd (en punto flotante) Divide rf por rg, dejando el resultado en rd (valores con signo) Divide rf por rg, dejando el resultado en rd (valores sin signo) Divide ff por fg, dejando el resultado en fd (en punto flotante) Compara rf con rg, dejando rd=1 si rf es menor que rg (valores con signo) Compara rf con el valor inmediato N, dejando rd=1 si rf es menor que N (valores signo) Compara fd con ff, dejando flag FP=1 si fd es menor que ff (en punto flotante) Compara fd con ff, dejando flag FP=1 si fd es menor o igual que ff (en punto flotante) Compara fd con ff, dejando flag FP=1 si fd es igual que ff (en punto flotante) Instrucciones Lógicas and rd, rf, rg andi rd, rf, N or rd, rf, rg ori rd, rf, N xor rd, rf, rg xori rd, rf, N Realiza Realiza Realiza Realiza Realiza Realiza un un un un un un AND entre rf y rg (bit a bit), dejando el resultado en rd AND entre rf y el valor inmediato N (bit a bit), dejando el resultado en rd OR entre rf y rg (bit a bit), dejando el resultado en rd OR entre rf y el valor inmediato N (bit a bit), dejando el resultado en rd XOR entre rf y rg (bit a bit), dejando el resultado en rd 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 halt Arquitectura de Computadoras 2015 Operación nula Detiene el simulador