The MIPS assembly bruker linjer med kode for å instruere datamaskiner. I likhet med maskin språk , oversetter en linje av MIPS kode i en enkelt, udelelig instruksjon for en sentralenhet . Men bruker maskinkode hexadesimaler og andre konstruksjoner , som kan være vanskelig å forstå på et øyeblikk . Montering språk er langt mer umiddelbart tilgjengelig . Både maskin språk og montering språk har sine peccadilloes , imidlertid. I MIPS , data arrays er sammenhengende lister over verdier. Legge ytterligere dimensjoner endrer dette i bare en mindre vei . Det skaper en sammenhengende liste over 1D arrays. Forstå denne ideen er et viktig steg for å lese verdier fra 2D arrays. Instruksjoner
en
Identifiser plasseringen av ønsket element . Skjelne rad og kolonne nummer. For eksempel vurdere matrise:
[ 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 ]
2D matrise er en serie av fem rader og fem kolonner. Hvis det ønskede elementet er sentrum - mest verdi i matrisen , det har koordinatene rad 3 , kolonne tre .
2
Skriv om 2D matrise som en 1D array. Assemblerkode gjenkjenner ikke linjeskift i 2D arrays. I stedet setter sammen den dataene som en 1D rekke 1D arrays , som starter på en base adresse og endte på [ basen adresse + p * kolonner ] . For å fortsette eksempelet , blir 2D matrise:
[ 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 ]
25 verdier i denne matrisen tilsvarer de ovennevnte fem rader og fem kolonner.
3
Trekke en fra raden antall interesse. Multipliser dette endret rad nummer av det totale antall kolonner. Legg verdien for kolonnen av interesse. Multipliser det med antall bytes allokert til hvert element . I eksemplet har hver rad fem kolonner . Plasseringen av heltall ( 4 byte ) i rad 3, kolonne 3 er : [(2 * 5 ) + 3] * 4 = 52 . I forsamlingen språk , er dette skrevet : . Basen adresse + (rad * NUM_COLUMNS ) + col
4
Skriv en kommando benytte lasten umiddelbar verdi kommando , eller li , for å lese denne verdien i en variabel. Å konkludere eksempel angi en variabel ( fini1 ) lik element i den beregnede byte posisjon. I assembly , vises dette som : . Li fini1 ( 52 )