Domanda

io sto facendo un lavoro che coinvolge assemblaggio MIPS, e continuo a imbattersi in questi quattro virgola mobile load / store pseudoistruzioni: l.s, l.d, s.s, s.d. Ho trovato un po 'di documentazione in linea e capito che ci sono quattro istruzioni "reali" che sembrano fare la stessa cosa:. lwc1, ldc1, swc1, e sdc1

La mia unica domanda è, qual è la differenza? Per quanto posso dire, entrambi i set di istruzioni fanno esattamente la stessa cosa. Fare la pseudos forse esistono solo perché sono più facili da leggere?

Grazie in anticipo per qualsiasi comprensione.

È stato utile?

Soluzione

  

La mia unica domanda è, qual è la differenza? Per quanto posso dire, entrambi i set di istruzioni fanno esattamente la stessa cosa.

Sì, hai ragione. L'unica differenza che potrebbe apparire è quando una pseudo-istruzione è tradotto in più di un'istruzione "reale".

  

fare i pseudos forse esistono solo perché sono più facili da leggere?

Anche in questo caso, sì. Questo è perché che esistono. Essi danno l'illusione di un set di istruzioni più espressivo. Citando organizzazione Computer e design / Patterson & Hennessy :

  

... l'assemblatore può anche trattare varianti comuni di istruzioni in linguaggio macchina come se fossero istruzioni a tutti gli effetti. L'hardware non ha bisogno di implementare queste istruzioni; tuttavia, la loro comparsa nel linguaggio aassembly semplifica la traduzione e la programmazione. ...

Dato il tuo esempio, è più "chiaro" per dire:

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

di

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

così come si può capire meglio:

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

di

add $7, $18, $0

Per quanto mi riguarda, è solo essere aiutato da mnemonici per ottenere il codice meglio leggibile.

Altri suggerimenti

In realtà credo che,

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

ecc ...


Indovinate un po ', mi ha colpito su una pagina dei brevetti cercando di ricordare questi.

US Patent 5.555.384 - Ripianificazione in conflitto istruzioni impartite ritardando un'istruzione in conflitto nella stessa fase gasdotto come terza istruzione non in conflitto

  

Ci sono due tipi di istruzioni di carico implementate da FPC 20:
  LWC1 (Load Word coprocessore 1, mostrata in Fig. 4) e vendere   LDC1 (Load doppia parola coprocessore 1, mostrato nella figura. 8).

     

LWC1 carica una parola a 32 bit dal sottosistema di memoria nei registri generali FPC.
  LDC1 carica una parola doppia a 64 bit dal sottosistema di memoria nei registri generali FPC.

che lo conferma.
(BTW: non si preoccupano per la ricerca di figure di cui qui a meno che avere accesso al sito).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top