MIPS assembler använder rader kod för att instruera datorer . Liknar maskin språket , översätter en rad av MIPS -kod i en enda , odelbar instruktion för en centralenhet . Dock använder maskinkod hexadecimal notation och andra konstruktioner , som kan vara svåra att förstå med ett ögonkast. Assembler är långt mer omedelbart tillgängliga . Både maskin språket och assembler har sina peccadilloes , dock . I MIPS , datamatriser är sammanhängande listor av värden . Lägga till ytterligare dimensioner ändrar detta i endast en mindre väg . Det skapar en sammanhängande lista med 1D arrayer . Förstå denna idé är ett viktigt steg för att läsa värden från 2D arrayer. Instruktioner
en
Identifiera placeringen av det önskade elementet . Urskilja den rad och kolumn nummer . Till exempel anser arrayen :
[ 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 array är en serie av fem rader och fem kolumner. Om det önskade elementet är centrum - mest värde i arrayen , den har koordinaterna rad 3 , kolumn 3 .
2
Rewrite 2D array som en 1D array . Assemblerkod känner inte vagnretur i 2D arrayer . Istället samlar det data som en 1D array av 1D arrayer , med början på en bas adress och slutar vid [ basadress + rader * kolumner ] . För att fortsätta exemplet blir 2D array :
[ 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 värden i denna grupp svarar mot ovanstående fem rader och fem kolumner .
3
Subtrahera en från radnumret av intresse. Multiplicera detta modifierade radnumret med det totala antalet kolumner . Lägg värdet för kolumnen av intresse. Multiplicera det med antalet byte som tilldelas varje element . I exemplet har varje rad fem kolumner. Placeringen av heltal ( 4 byte) i rad 3 , är kolumn 3 : [( 2 * 5 ) + 3 ] * 4 = 52 . I assembler är detta skrivet : . Basadress + ( v * NUM_COLUMNS ) + col
4
Skriv ett kommando med lasten omedelbart värde kommando , eller li , att läsa detta värde till en variabel . Avslutningsvis exemplet , ange en variabel ( fini1 ) lika med elementet i den beräknade bytepositionen . I assembler , visas detta som : . Li fini1 ( 52 ) katalog