Pregunta

Estoy haciendo un trabajo que implica el montaje MIPS, y sigo viniendo a través de estos cuatro puntos flotantes pseudoinstructions carga / almacenamiento: l.s, l.d, s.s, s.d. He encontrado alguna documentación en línea y cuenta de que hay cuatro instrucciones "reales" que parecen hacer lo mismo:. lwc1, ldc1, swc1 y sdc1

Mi única pregunta es, ¿cuál es la diferencia? Por lo que yo puedo decir, ambos conjuntos de instrucciones que hacen exactamente lo mismo. Hacen tal vez existen los pseudos sólo porque son más fáciles de leer?

Gracias de antemano por cualquier idea.

¿Fue útil?

Solución

  

Mi única pregunta es, ¿cuál es la diferencia? Por lo que yo puedo decir, ambos conjuntos de instrucciones que hacen exactamente lo mismo.

Sí, tienes razón. La única diferencia es que podría aparecer cuando un pseudo-instrucción se traduce a más de una instrucción "real".

  

do tal vez existen los pseudos sólo porque son más fáciles de leer?

Una vez más, sí. Eso es ¿Por qué es que existen. Ellos dan la ilusión de un conjunto de instrucciones más expresiva. Citando ordenador organización y diseño / Patterson y Hennessy :

  

... el ensamblador también puede tratar variaciones comunes de instrucciones en lenguaje máquina como si fueran instrucciones en su propio derecho. El hardware no necesita implementar estas instrucciones; Sin embargo, su aparición en la lengua Detalles de montaje simplifica la traducción y la programación. ...

Dada su ejemplo, es más "claro" para decir:

l.s $f2, 24(t1)       # Load Single contained in 24(t1) to $f2

de

lwc1 $f2, 24(t1)      # Load Word into Coprocessor 1 from 24(t1) to $f2

, así como se puede comprender mejor:

move $7, $18        # move contents of $18 to $7

de

add $7, $18, $0

Para mí, es sólo ayudar por mnemotécnicos para conseguir mejor código legible.

Otros consejos

En realidad, creo,

LWC1 is Load Word to Co-processor 1
LDC1 is Load Double Word to Co-processor 1

etc ...


Adivina qué, di con una página de Patentes tratando de recordar estos.

Patente de Estados Unidos 5.555.384 - reprogramación en conflicto instrucciones emitidas por retrasar una instrucción en conflicto en la misma etapa de canalización como una tercera instrucción no conflictivos

  

Existen dos tipos de instrucciones de carga implementadas por FPC 20:
  LWC1 (Load Palabra Coprocesador 1, que se muestra en la Fig. 4) y
  LDC1 (carga palabra doble Coprocesador 1, que se muestra en la Fig. 8).

     

LWC1 carga una palabra de 32 bits desde el subsistema de memoria en los registros generales FPC.
  LDC1 carga una palabra doble de 64 bits desde el subsistema de memoria en los registros generales FPC.

, que lo confirma.
(Por cierto: no se molestan en buscar las cifras que se refiere aquí a menos que tener acceso al sitio).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top