Set de instrucciones winmips64

Anuncio
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
Descargar