Simbólico: Resumen:
ADD rd, rs, rt
Suma rs + rt y lo guarda en rd.
ADDI rt, rs, inmediato
Suma rs+ inmediato y lo guarda en rt.
SUB rd, rs, rt
Resta rs-rt y lo guarda en rd.
MULT rs,rt
Multiplica rs*rt y guarda la parte mas significativa en HI y la menos en LO.
AND rd, rs, rt
Realiza la operación AND entre rs y rt y lo guarda en rd.
ANDI rt, rs, inmediato
Realiza la operación AND entre rs y un dato inmediato y lo guarda en rt.
NOR rd, rs, rt
Realiza la operación NOR entre rs y rt y lo guarda en rd.
OR rd, rs, rt
Realiza la operación OR entre rs y rt y lo guarda en rd.
ORI rt, rs, inmediato
Realiza la operación OR entre rs y un dato inmediato y lo guarda en rt.
XOR rd, rs, rt
Realiza la operación XOR entre rs y rt y lo guarda en rd.
XORI rt, rs, inmediato
Realiza la operación XOR entre rs y un dato inmediato y lo guarda en rd.
SLL rd, rt, desp
Realiza un desplazamiento a la izquierda de rt como indique desp, y lo guarda en rd.
SRL rd, rt, desp
Realiza un desplazamiento a la derecha de rt como indique desp, y lo guarda en rd.
SRA rd, rt, desp
Realiza un desplazamiento aritmético a la derecha de rt como indique desp, y lo guarda en rd.
LUI rt, inmediato[16]
Carga los 16 bits de la parte baja del valor inmediato en la parte alta de rt. Los bits de la parte baja se pone a 0.
LW rt, dir
Carga una palabra en rt de la dirección dir.
SW rt, dir
Almacena en dir la palabra almacenada en rt.
SLT rd, rs, rt
Pone rd a 1 si rs < rt en otro caso lo pone a 0. SLTI rt, rs, inmediato Pone rd a 1 si rs < inmediato en otro caso lo pone a 0. BEQ rs, rt, etiqueta Si rt y rs son iguales el programa salta a la dirección indicada en la etiqueta. BNE rs, rt, etiqueta Si rt y rs no son iguales el programa salta a la dirección indicada en la etiqueta. BGEZ rs, etiqueta Si rs es mayor o igual a 0 el programa salta a la dirección indicada en la etiqueta. J dir El programa salta a la dirección indicada en dir. JAL dir El programa salta a la dirección indicada en dir, guardando la dirección actual en ra. JR rs El programa salta a la dirección indicada por el registro rs Tabla de instrucciones:
Esquema del Computador MIPS:
Esquema de la ALU en Logisim:
Instrucción de Ejemplo:
Ejemplo de la transferencia de una instrucción AND $t2,$t1,$t1:
C1: MAR <- PC SC: (T4,C1)
C2: PC <- PC+4 | MBR <- MP SC: (C4,TD,L,C2)

C3: RI <- MBR SC: (T3,C7)

C5: $t2 = $t1 AND $t1
SC: (RA = ($t1) ;RB = ($t1);
MA = 0; MB = 0; Cod OP: AND;T5;
RC = ($t2); SC).
FAQ:
• ¿Hace falta ser un usuario a nivel profesional del programa Logisim para realizar las prácticas de FEC?
Bueno, a nivel teórico, habrá mucha palabrería, mucho tiempo para ver la teoría y saber que es cada cosa. Yo siendo alumno, digámoslo todo, no muy puesto en informática, no he necesitado las instrucciones de las prácticas en sí, sino las imágenes que se correspondía con respecto a las puertas lógicas y demás circuitos. Así a la vez que aprendía que era cada cosa, o las recordaba, creaba circuitos más complejos. Así que no os preocupes y tomaros el tiempo en hacer las cosas, tanto en esta práctica como en las demás.
• ¿Cómo utilizar un circuito propio para crear otro mas complejo con el anterior?
Una vez dentro del logisim, tenemos la opción de añadir circuito. Con esta opción, tenemos la oportunidad de obtener una nueva ventana en la cual operaremos con el nuevo circuito que quermos hacer. En la ventana izquierda hay varios circuitos predeterminados, como puertas lógicas, memorias, inputs… y entre ellas, en la carpeta CIRC, están varios circuitos: main y el nuevo con el que poner el anterior, mas aquellos que creas al utilizar el programa. Solo seleccionarlo y ponerlo donde veáis oportuno.
• ¿Por qué salen en mis circuitos que está mal las conexiones?
Lo más probable es que el número de entradas no sea el mismo para cada circuito vinculante. Así que podéis revisar eso antes de hacer otra cosa. Si el error no se soluciona, tranquilos, siempre podéis suprimir conexiones entre circuitos para alojar el error y saber dónde está. A partir de ahí, no hay mas ciencia que comprobarlo, o en su defecto trastear todo lo posible.
•¿Porque las instrucciones deben de ponerse en hexadecimal?
El lenguaje hexadecimal es el que más símbolos distintos tiene para representar números o letras. A mas símbolos, menos tamaño en la representación de símbolos, que es lo que se pretende para manejar las instrucciones.
•¿Que diferencia hay entre una instrucción normal e inmediato?
Buscando, la única diferencia es que la instrucción inmediata se realiza pero con valores constantes, mientras que la instrucción normal se realiza con valores mas generales.





Garcia, ha habido un fallo a la hora de subir las imagenes, te has saltado la primera y la ultima esta repetida. corrigelo en cuento puedas.
ResponderEliminar