EnsambladorR2000
Páginas: 7 (1656 palabras)
Publicado: 7 de noviembre de 2015
CARGA
lw rt,dirección
Carga palabra
I
Carga los 32 bits almacenados en la palabra de memoria
especificada por dirección en el registro rt.
lw $s0, 12($a0) # $s0 ← Mem[ 12 + $a0 ]
ARITMÉTICAS
add rd, rs, rt
Suma
R
Suma el contenido de los registros rs y rt, considerando el
signo. El resultado se almacena en el registro rdCOMPARACIONES
slt rd, rs, rt
Activa si menor
R
Pone el registro rd a 1 si rs es menor que rt y a 0 en caso
contrario
add $t0, $a0, $a1
slt $t0, $a0, $a1
# $t0 ←$a0 + $a1
lb rt, dirección Carga byte y extiende signo
I
Carga los 8 bits almacenados en el byte de memoria
especificado por dirección en el LSB del registro rt y
extiende el signo
addu rd, rs, rt
Suma sin signo
R
Suma el contenido de losregistros rs y rt, sin considerar el
signo. El resultado se almacena en el registro rd
lb $s0, 12($a0) # $s0(7..0) ← Mem[ 12 + $a0 ](1byte)
# $s0(31..8) ← $s0(7)
sub rd, rs, rt
Resta
R
Resta el contenido de los registro rs y rt considerando el
signo. El resultado se almacena en el registro rd
lbu rt, dirección Carga byte y no extiende signo
I
Carga los 8 bits almacenados en el byte de memoriaespecificado por dirección en el LSB del registro rt sin
extender el signo
lbu $s0, 12($a0) # $s0 ← 0x000000(Mem[ 12 + $a0 ])(1byte)
lh rt, dirección Carga media palabra y ext. signo
I
Carga media palabra (16 bits) almacenada en la media
palabra de memoria especificada por la dirección en la
parte baja del registro rt y extiende el signo
lh $s0, 12($a0) # $s0 (15..0)← Mem[ 12 + $a0 ](2bytes)
# $s0(31..16)← $s0(15)
addu $t0, $a0, $a1
# $t0 ←$a0 + $a1
# $t0 ←$a0 - $a1
sub $t0, $a0, $a1
subu rd, rs, rt
Resta sin signo
R
Resta el contenido de los registros rs y rt, sin considerar el
signo. El resultado se almacena en el registro r.
subu $t0, $a0, $a1
# $t0 ←$a0 - $a1
addi rt, rs, valor Suma inmediata
I
Suma el contenido del registro rs con el valor inmediato,
considerando el signo. Elresultado se almacena en el
registro rt.
# $t0 ←$a0 + (-24)
addi $t0, $a0, -24
lhu rt, dirección Carga media palabra y no ext. signo I
Carga media palabra (16 bits) almacenada en la media
palabra de memoria especificada por la dirección en la
parte baja del registro rt y no extiende el signo
addiu rt, rs, valor Suma inmediata sin signo
I
Suma el contenido del registro rs con el valor inmediato,
sinconsiderar el signo. El resultado se almacena en el
registro rt.
lhu $s0, 12($a0) # $s0← 0x0000Mem[ 12 + $a0 ])(2bytes)
addiu $t0, $a0, 24
la reg, dirección Carga dirección
Carga la dirección calculada en reg
mult rs, rt
Multiplicación
R
Multiplica el contenido de los registros rs y rt. Los 32 MSB
del resultado se almacenan en el registro HI y los 32 LSB
en el registro LO
la $s0, VAR
PS
#$s0← dir. asociada a etiqueta VAR
lui rt, dato
Carga inmediata superior
I
Carga el dato inmediato en los 16 MSB del registro rt
lui $s0, 12
# $s0(31..16) ← 12
# $s0(15..0) ← 0x0000
li reg, dato
Carga inmediato
Carga el dato inmediato en el registro reg.
li $s0, 12
# $s0 ← 12
mult $s0, $s1
div rs, rt
PS
# $t0 ←$a0 + 24
# $HI ←($s0 * $s1) (31…16)
# $LO←($s0 * $s1) (15…0)
División
R
Divideel registro rs por el rt. El cociente se almacena en LO
y el resto en HI.
div $s0, $s1
# $LO ← $s0 / $s1
# $HI ← $s0 % $s1
# if ( $a0 < $a1) $t0 ← 1
# else $t0 ← 0
slti rt, rs, inm
Activa si menor con inmediato
I
Pone el registro rt a 1 si rs es menor que el dato inmediato
inm y a 0 en caso contrario
slti $t0, $a0, -15
# if ( $a0 < -15) $t0 ← 1
# else $t0 ← 0
seq rdest, rsrc1, rsrc2
Activasi igual
PS
Pone el registro rdest a 1 si rsrc1 es igual que rsrc2 y a 0 en
caso contrario
seq $t0, $a0, $a2
# if ( $a0 == $a2) $t0 ← 1
# else $t0 ← 0
sge rdest, rsrc1, rsrc2
Activa si mayor o igual
PS
Pone el registro rdest a 1 si rsrc1 es mayor o igual que rsrc2
y a 0 en caso contrario
sge $t0, $a0, $a2
# if ( $a0 >= $a2) $t0 ← 1
# else $t0 ← 0
sgt rdest, rsrc1, rsrc2
Activa si mayor...
Leer documento completo
Regístrate para leer el documento completo.