De MIPS assembly taal gebruikt lijnen van de code om computers te instrueren . Vergelijkbaar met machinetaal , een regel van MIPS code vertaalt in een enkele , ondeelbare instructie voor een centrale verwerkingseenheid . Echter , machine code gebruikt hexadecimale notatie en andere constructies , die moeilijk te begrijpen in een oogopslag kan worden . Assembler is veel meer direct toegankelijk . Zowel taal machine en assembler hebben hun peccadilloes echter . In MIPS , data arrays zijn aaneengesloten zoeklijsten . Toevoeging van extra dimensies verandert dit in slechts minimaal . Het creëert een aaneengesloten lijst met 1D arrays . Het begrijpen van dit idee is een cruciale stap om te lezen waarden van 2D arrays . Instructies 1 Bepaal de plaats van het gewenste element . Onderscheiden van de rij -en kolomnummer . Denk bijvoorbeeld aan de 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 ] Deze 2D -array is een reeks van vijf rijen en vijf kolommen . Indien het gewenste element is het meest centrale waarde in de array , het heeft coördinaten rij 3 , kolom 3 . Kopen van 2 Herschrijf de 2D- array als een 1D array. Assembly code niet herkent harde returns in 2D arrays . In plaats daarvan assembleert de data als een 1D serie van 1D arrays , beginnend bij een basisadres en eindigt op [ basisadres + rijen kolommen * ] . Om met het voorbeeld , de 2D -array wordt : [ 3 ] [ 4 ] [ 3 ] [ 2 ] [ 1 ] [ 2 ] [ 5 ] [ 6 ] [ 5 ] [ 2 ] [ 9 ] [ ,"3 ] [ 1 ] [ 7 ] [ 9 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 5 ] [ 6 ] [ 5 ] [ 6 ] ] De 25 waarden [ 5 in deze array komen overeen met de bovenstaande vijf rijen en vijf kolommen . 3 Trek een uit het rijnummer van belang . Vermenigvuldig dit gewijzigd rijnummer door het totale aantal kolommen . Voeg de waarde voor de kolom van belang . Vermenigvuldigen met het aantal bytes aan elk element . In het voorbeeld , elke rij vijf kolommen . De locatie van de integer ( 4 bytes ) in rij 3 , kolom 3 is : [ ( 2 * 5 ) + 3 ] * 4 = 52 . In assembler , dit is geschreven : . Basisadres + ( rij * NUM_COLUMNS ) + col 4 Schrijf een opdracht met de load commando directe waarde , of li , om deze waarde te lezen in een variabele . Om het voorbeeld te sluiten , stellen een variabele ( fini1 ) gelijk aan het element in de berekende byte positie . In assembler , verschijnt dit als : . Li fini1 ( 52 ) op
|