Académique Documents
Professionnel Documents
Culture Documents
A Memria Principal
Clulas de 8 bits (1 byte) A Word da CPU determina o nmero de clulas acessadas No MIPS cada acesso busca ou escreve em 4 clulas da memria Dessa forma, qualquer dado ou instruo, sempre sero representados por 32 bits
0 1 0 1 1 0 0 0 0 0 1 0 1 0 0 1 0 1 0 0 0 0 0 1 0 0 1 0 0 1 0 1
A cadeia de bits: 01010000100010010010001010010101 pode estar representando o valor de uma varivel, um nmero, um caracter, uma instruo, enfim, qualquer informao
LOAD WORD (lw): pega uma word da memria e carrega em um registrador STORE WORD (sw): pega uma word de um registrador e carrega na memria
Armazenando Vetores
Vetores so estruturas de dados geralmente grandes, ou seja, ocuparo muitas clulas de memria O compilador no vincula um registrador para cada posio do vetor (IMPOSSVEL!) Como resolver? endereo base + offset
Tomemos como exemplo um vetor X[ ] de 200 posies O compilador usar o registrador $s4 para marcar a base desse vetor $s4 portanto guardar o endereo da memria onde este vetor inicia, por exemplo o endereo 23125 (0000000000000000010110 1001010101) Como acessar X[7]? Somando 28 base indicada por $s4
28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
$s4 = 23125
Exemplos
offset
Exemplos
offset
Portanto, a posio que est 500 bytes acima do endereo apontado por $s4 receber o contedo de $t7
Mais exemplos
Considere o seguinte trecho em C:
x[2] = k; x[11]= w; z = x[15];
Sabe-se que: $s4 o endereo base de x[ ], $s3 esta ligado a k, $s5 est ligado a w e $s6 est ligado a z
UNIDADE DE CONTROLE
...
$t2 $t1
/ +
Assembly do MIPS
Instrues de desvio condicional