A linguagem assembly MIPS usa linhas de código para instruir computadores. Semelhante a linguagem de máquina , uma linha de código MIPS se traduz em uma única instrução , indivisível para uma unidade de processamento central. No entanto, o código de máquina usa a notação hexadecimal e outras construções , o que pode ser difícil de entender à primeira vista. A linguagem assembly é muito mais imediatamente acessível . Tanto a linguagem de máquina e linguagem de montagem têm os seus pecadilhos , no entanto. Em MIPS , matrizes de dados são listas contíguas de valores. Adicionando novas dimensões altera isso em apenas uma forma menor. Ele cria uma lista contígua de matrizes 1D. Compreender essa idéia é um passo vital para a leitura de valores a partir de matrizes 2D. Instruções
1
Identificar a localização do elemento desejado. Discernir a linha e número de coluna . Por exemplo , considere a matriz :
[ 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 ]
Este conjunto 2D é uma série de cinco linhas e cinco colunas . Se o elemento desejado é o valor de centro- mais na matriz , tem as coordenadas linha 3, coluna 3.
2
Reescreva a matriz 2D como uma matriz 1D. Código Assembléia não reconhece retornos de carro em matrizes 2D. Em vez disso, ele reúne os dados como uma matriz de matrizes 1E 1D , a partir de um endereço base e terminando em [endereço base + linhas * colunas ] . Para continuar com o exemplo , a matriz se torna 2D :
[ 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 ]
Os 25 valores nesta matriz correspondem aos acima de cinco linhas e cinco colunas.
3
Subtrair um do número da linha de interesse. Multiplique este número da linha modificada pelo número total de colunas . Adicione o valor da coluna de interesse. Multiplique isso pelo número de bytes alocados para cada elemento. No exemplo , cada fila tem cinco colunas . A localização do inteiro (4 bytes) na linha 3 , coluna 3 é a seguinte: [ ( 2 * 5 ) + 3 ] * 4 = 52 . Em linguagem assembly , este está escrito: . Endereço base + ( linhas * NUM_COLUMNS ) + col
4
Escrever um comando usando o comando valor imediato de carga, ou li , para ler esse valor em uma variável . Para concluir o exemplo, definir uma variável ( fini1 ) igual ao elemento na posição de byte calculado. Em linguagem assembly , este aparece como: . Fini1 li (52)