Nwlapcug.com


Come leggere l'Input da matrice 2D in MIPS

Come leggere l'Input da matrice 2D in MIPS


Il linguaggio assembly MIPS utilizza linee di codice per indicare il computer. Simile al linguaggio macchina, una riga di codice MIPS si traduce in un unico, indivisibile di istruzioni per un'unità centrale di elaborazione. Tuttavia, codice macchina utilizza la notazione esadecimale e altri costrutti, che possono essere difficile capire a colpo d'occhio. Linguaggio assembly è molto più immediatamente accessibile. Sia in linguaggio macchina e linguaggio assembly sono loro ad, tuttavia. In MIPS, matrici di dati sono contigui elenchi di valori. L'aggiunta di ulteriori dimensioni altera questo nel solo modo minore. Crea un elenco contiguo di matrici 1D. Comprendere questa idea è un passo fondamentale per leggere i valori di matrici 2D.

Istruzioni

1

Identificare la posizione dell'elemento desiderato. Discernere il numero di riga e colonna. Si consideri ad esempio la matrice:

[3] [4] [3] [2] [1]
[2] [5] [6] [5] [2]
[9] [3] [1] [7] [9]
[1] [2] [3] [4] [5]
[5] [6] [5] [6] [5]

Questa matrice 2D è una serie di cinque righe e cinque colonne. Se l'elemento desiderato è il centro più valore nella matrice, contiene coordinate riga 3, colonna 3.

2

Riscrivere la matrice 2D come un array 1D. Codice assembly non riconosce ritorni nelle matrici 2D. Invece, si assembla i dati come un 1D array di matrici 1D, a partire da un indirizzo di base e termina a [indirizzo di base + righe * colonne]. Per continuare l'esempio, la matrice 2D diventa:

[3] [4] [3] [2] [1] [2] [5] [6] [5] [2] [9] [3] [1] [7] [9] [1] [2] [3] [4] [5] [5] [6] [5] [6] [5]

I 25 valori in questo array corrispondono agli sopra cinque righe e cinque colonne.

3

Sottrarre uno dal numero di riga di interesse. Moltiplicare questo numero di riga modificata per il numero totale di colonne. Aggiungere il valore per la colonna di interesse. Moltiplicarlo per il numero di byte allocati a ciascun elemento. Nell'esempio, ogni riga ha cinque colonne. La posizione dell'intero (4 byte) nella riga 3, colonna 3 è: [(2 5) + 3]4 = 52. In linguaggio assembly, questo è scritto: indirizzo di base + (riga * num_colonne) + col.

4

Scrivere un comando utilizzando il comando load valore immediato, o li, per leggere questo valore in una variabile. Per concludere l'esempio, è possibile impostare una variabile (fini1) uguale all'elemento nella posizione calcolata byte. In linguaggio assembly, questo viene visualizzato come: li fini1 (52).