Lenguaje ensamblador que corresponde a la instrucción de máquina en MIPS

0

Estoy trabajando en un problema que solicita el lenguaje ensamblador que correspondería a la siguiente instrucción de máquina en MIPS:

OX3062FF80

Esto es lo que he hecho:

step 1: convert to binary

0011 0000 0110 0010 1111 1111 1000 0000

opcode: 000000 <--- im not sure about this part ( I thought it should always be zero)
rs: 00011
rt: 00010
rd: 11111
shamt: 11110
funct: 000000

add $15, $3, $2

¿Esto es correcto? Me voy a dar un ejemplo, pero no estoy completamente seguro de si es correcto. Cualquier ayuda, consejo sería apreciado. Gracias.

    
pregunta user655321

1 respuesta

0

Creo que es un AND de bit a bit e inmediato.

Tenías los dos primeros pasos a la derecha:

OX3062FF80
0011 0000 0110 0010 1111 1111 1000 0000

Pero no el resto.

Primero separe el código de operación, comenzando desde la izquierda. Todos los códigos de operación son 6 bits.

Por lo tanto, el código de operación en binario, desde la izquierda, es:

001100

que es 0xC. Esta es una instrucción de andi .

Luego, debe separar los campos de acuerdo con el formato de instrucción MIPS I ;

001100  00011  00010  1111 1111 1000 0000 

opcode    rs    rt        immediate

Opcode:     0xC
rs:         0x03
rt:         0x02
Immediate:  0xFF80

Escribí un código y verifiqué que una instrucción adi tiene el formato anterior en una lista de desensamblaje.

Para convertir esto en una instrucción de montaje:

El formato de lenguaje ensamblador de un andi es:

andi,rs,rt,IMM

Buscando registros MIPS para los campos rs y rt:

rs = 0x03 => $v1
rt = 0x02 => $v0

por lo que la instrucción de montaje correspondiente es:

andi $ v1, $ v0,0xFF80

    
respondido por el tcrosley

Lea otras preguntas en las etiquetas