SlideShare uma empresa Scribd logo
1 de 8
Baixar para ler offline
MIPS 32 BITS CHEAT SHEET
Tipos de Instruções
opcode rs rt rd Shamt Funct
6 bits 5 bits 5 bits 5 bits 5 bits 6 bits
Código da
operação
Registrador
Fonte
Registrador
Fonte
Registrador
Destino
Deslocamento Código de
operação
secundário
Instruções Tipo R
opcode rs rt endereço
6 bits 5 bits 5 bits 16 bits
Código da
Operação
Registrador Registrador Endereço de
memória
Instruções Tipo I
opcode rs endereço
6 bits 5 bits 21 bits
Código da
operação
Registrador Endereço de
memória
Instruções Tipo J
Instrução C a = b + c;
Linguagem de
Montagem
ADD $t0, $s0, $s1
Linguagem de
máquina
ADD $8, $16, $17
Representação 0 16 17 8 0 32
Código de
Máquina
000000 10000 10001 01000 00000
100000
Instrução C g = h + a[8];
Linguagem de
Montagem
LW $t0, 8 ($s3)
ADD $s1, $s2, $t0
Linguagem de
Máquina
LW $8, 8 ($19)
ADD $16, $17, $8
Representação 35 8 19 8
0 17 8 16 0 32
Código de Máquina 100011 010000 10011 0000 0000 0000 1000
000000 10001 01000 10000 00000 100000
Instrução C EXIT, ELSE, ou algum outro label, ou retorno de função
Linguagem de Montagem JR $t0
Linguagem de máquina JR $8
Representação 0 8 8
Código de Máquina 000000 01001 00000 00000 00000 001000
elainececiliagatto@gmail.com
MIPS 32 BITS CHEAT SHEET
Registradores e Memória
opcode Operação básica da instrução
rs Registrador do primeiro operando fonte
rt Registrador do segundo operando fonte
rd Registrador do operando destino
shamt Shift amount, em português, quantidade de
deslocamento. Utilizado em algumas instru-
ções lógicas
funct Função ou código de função. É um código
variante do opcode. Utilizado em algumas
instruções aritméticas.
Registrador Decimal Binário Uso
$zero 0 000 000 Constante zero
$at 1 000 001 Montador
$v0 2 000 010 Avaliação de
expressão e
resultados de
função
$v1 3 000 011
$a0 4 000 100
Argumentos de
Função
$a1 5 000 101
$a2 6 001 110
$a3 7 000 111
$k0 26 011 010 Reservado para
o Kernel do S.O.
$k1 27 011 011
$gp 28 011 100 Global pointer
$sp 29 011 101 Stack pointer
$fp 30 011 110 Frame pointer
$ra 31 011 111 Endereço de
retorno da fun-
ção
Registrador Decimal Binário Uso
$t0 8 001 000
Registrado-
res tempo-
rários. Não
preservados
pela chama-
da.
$t1 9 001 001
$t2 10 001 010
$t3 11 001 011
$t4 12 001 100
$t5 13 001 101
$t6 14 001 110
$t7 15 001 111
$s0 16 010 000
Registrado-
res tempo-
rários sal-
vos. Preser-
vados pela
camada.
$s1 17 010 001
$s2 18 010 010
$s3 19 010 011
$s4 20 010 100
$s5 21 010 101
$s6 22 010 110
$s7 23 010 111
Segmento de Pilha
Dados Dinâmicos
Dados Estáticos
Segmento de Texto
Reservado
MEMÓRIA
...
Registros salvos
Argumento 5
Argumento 6
FRAME DE PILHA
Variáveis Locais
Endereço de Memória mais alto
Endereço de Memória mais baixo
$sp
$fp
- 32 registradores de propósito geral;
- HI e LO: registradores de propósito especial para
guardar resultados de divisão e multiplicação de
inteiros e outras operações acumuladoras;
- PC: counter program, ou contador de programa,
registrador de propósito especial;
elainececiliagatto@gmail.com
4 co-processadores:
- CP0: cpu, sistema de controle; memória virtual, execções;
- CP1: ponto flutuanteCoprocessor 2 (CP2) is available for specific imple-
mentations;
- CP2: implementações específicas
- CP3: ponto flutuante mips 64 bits
Memória
Word
MIPS 32 BITS CHEAT SHEET
Modos de Endereçamento e Instruções
op rs rt imediato
Imediato
op rd shamt funct
rs rt
Registrador
Registro
op rs rt Endereço
Base
Half Word
Byte
Registrador
+
Memória
Word
PC
op rs rt Endereço
Relativo ao PC
+
Memória
Word
PC
op Endereço
Pseudodireto
+
- Instruções MIPS possuem endereços em
BYTES
- Os endereços das palavras sequenciais
diferem em 4
- MIPS é Big Endian
20 000
20 004
20 008
20 012
20 016
O operando é uma constante dentro da pró-
pria instrução.
O operando é um registrador
O operando está no local de memória
cujo endereço é a soma de um regis-
trador e uma constante na instrução
O endereço de desvio é a soma do PC e
uma constante na instrução
O endereço de jump são os 26 bits da ins-
trução concatenados com os bits mais altos
do PC
Instrução Código
Add (32)10 (20)16
addi (08)10 (08)16
addiu (09)10 (09)16
And (36)10 (24)16
beq (04)10 (04)16
bne (05)10 (05)16
div (26)10 (1A)16
divu (27)10 (1B)16
j (02)10 (02)16
jr (8)10 (8)16
lw (35)10 (23)16
mult (24)10 (18)16
Nor (39)10 (27)16
Or (37)10 (25)16
sll (0)10 (0)16
Slt (42)10 (2A)16
sra (2)10 (2)16
Sub (34)10 (22)16
subu (35)10 (23)16
sw (43)10 (2B)16
Xor (38)10 (26)16
Principais Instruções
Instruções Implementadas
- Aritméticas, Lógicas e Relacionais;
- Desvios condicionais e incondicio-
nais;
- Manipulação de operandos constan-
tes e imediatos;
- Tratamento de Exceções e Interrup-
ções;
- Carga e Armazenamento;
- Transferência de dados;
- Ponto Flutuante.
elainececiliagatto@gmail.com
MIPS 32 BITS CHEAT SHEET
BNE, BEQ, SLT e SLTI
Passo a passo: conversão ALTO NÍVEL
para ASSEMBLY
1. Converter a instrução de alto nível
para Linguagem de Montagem;
2. Converter a instrução na Linguagem
de Montagem para Linguagem de Má-
quina;
3. Fazer a representação corresponden-
te da Linguagem de Máquina;
4. Converter a representação da Lin-
guagem de Máquina para Código de
Máquina.
Passo a passo: conversão ASSEMBLY
para ALTO NÍVEL
1. Converter o Código de Máquina para
a Representação;
2. Converter a Representação em Lin-
guagem de Máquina;
3. Converter a Linguagem de Máquina
para Linguagem de Montagem;
4. Converter Linguagem de Montagem
para instrução de alto nível;
inicio
reg1 == reg2 ?
instruções
Desvie para cá se
REG1 != REG2
REG1 == REG2
Não executa se
reg1 != reg2
BNE: BRANCH IF NOT EQUAL
Desvie se não for igual. Testa uma desigualdade. A próxima
instrução a ser executada é aquela que estiver armazenada no
endereço do LABEL se o valor no registrador 1 não for igual ao
valor no registrador 2.
BNE REG1, REG2, ELSE # vá para ELSE se REG1 != REG2
.....
instruções
ELSE
inicio
reg1 == reg2 ?
instruções
REG1 != REG2
Não executa se
reg1 == reg2
.....
instruções
ELSE
BEQ: BRANCH IF EQUAL
Desvie se for igual. Testa uma igualdade. A próxima instrução a
ser executada é aquela que estiver armazenada no endereço do
LABEL se o valor no registrador 1 for igual ao valor no registra-
dor 2.
BEQ REG1, REG2, ELSE # vá para ELSE se REG1 == REG2
Desvie para cá se
REG1 == REG2
Cálculo do endereço relativo da memória
- Instruções de desvio acrescentam X palavras, ou X bytes, ao
endereço da instrução seguinte à si mesma;
- Especificam o destino do desvio em relação à instrução seguin-
te e não em relação à instrução de desvio ou ao uso do endereço
de destino completo
Exemplo:
80000 bne $s3, $s4, Else
80004 add $s0, $s1, $s2 # instrução seguinte à bne
80008 j Exit # + 2 palavras ou 8 bytes
# 80008 + 4 = 80012
80012 ELSE: sub $s0, $s1, $s2
80016 Exit: # endereço completo 20004 * 4
SLT: SET ON LESS THAN
Compara dois valores de dois
registradores diferentes.
Atribui o valor 1 a um tercei-
ro registrador se o valor do
primeiro registrador for
menor que o valor do segun-
do registrador. Caso contrá-
rio, atribui zero.
SLT REG3, REG1, REG2
REG3 = 1 se REG1 < REG2
REG3 = 0 se REG1 > REG2
SLTI: SET ON LESS THAN
IMMEDIATE
Compara o valor de um regis-
trador com um valor constan-
te ou imediato. Atribui o
valor 1 a um terceiro regis-
trador se o valor do primeiro
registrador for menor que o
valor do segundo registrador.
Caso contrário, atribui zero.
SLTI REG3, REG1, VALOR
REG3 = 1 se REG1 < VALOR
REG3 = 0 se REG1 > VALOR
elainececiliagatto@gmail.com
MIPS 32 BITS CHEAT SHEET
LOAD WORD e STORE WORD
LOAD WORD
Transfere dados da memória para o registrador
LW REG1, valor (REG2) # REG1 = memória [ REG2 + valor ]
EXEMPLO 1: LOAD
Instrução:
g = h + a[8];
* multiplicar 8 por 4 devido à restrição de alinhamento
Linguagem de montagem:
LW $t0, 32($s3)
ADD $s0, $s1, $t0
Linguagem de máquina:
LW $8, 32 ($19)
ADD $16, $17, $8
Representação:
35 8 19 32
0 17 8 16 0 32
Código de Máquina:
100011 01000 10011 00000 00000 100000
000000 10001 01000 10000 00000 100000
STORE WORD
Transfere dados do registrador para a memória
SW REG1, valor (REG2) # memória [ REG2 + valor ] = REG1
EXEMPLO 2: STORE
Instrução:
g[8] = h + a;
* multiplicar 8 por 4 devido à restrição de alinhamento
Linguagem de montagem:
ADD $t0, $s1, $t0
SW $t0, 32($s0)
Linguagem de máquina:
ADD $8, $17, $8
SW $8, 32 ($16)
Representação:
0 8 17 8 0 32
43 8 16 32
Código de Máquina:
000000 01000 10001 01000 00000 100000
101011 01000 01000 00000 00000 100000
EXEMPLO 3: LOAD E STORE
Instrução:
g[2] = h + a[4];
Linguagem de montagem:
LW $t0, 16 ($s0)
ADD $t1, $s1, $t0
SW $t1, 8 ($s2)
Linguagem de máquina:
LW $8, 16 ($16)
ADD $9, $17, $8
SW $9, 4 ($18)
Representação:
35 8 16 16
0 17 8 9 0 32
43 9 18 4
Código de Máquina:
100011 01000 10000 00000 00000 10000
000000 10001 01000 01001 00000 100000
101011 01001 10010 00000 00000 000100
elainececiliagatto@gmail.com
EXEMPLO 4: ÍNDICE VARIÁVEL
Instrução:
g = h + a[i];
Linguagem de montagem:
ADD $t0, $s3, $s3 # 2*i
ADD $t0, $t0, $t0 # 4*i
ADD $t0, $t0, $s2 # a[i]=(4*i+$s2)
LW $t1,0($t0) # $t1=a[i]
ADD $s0, $s1, $t1 # g=h+a[i]
Linguagem de máquina:
ADD $8, $19, $19 # 2*i
ADD $8, $8, $8 # 4*i
ADD $8, $8, $18 # a[i]=(4*i+$s2)
LW $9,0($8) # $t1=a[i]
ADD $16, $17, $9 # g=h+a[i]
Representação:
0 19 19 8 0 32
0 8 8 8 0 32
0 8 18 8 0 32
35 9 8 0
MIPS 32 BITS CHEAT SHEET
Controle de Programa e Array
IF SIMPLES
Instrução: if (a==b){ c = a + b }
Resolução:
Se a ==b então execute a instrução c = a + b, caso
contrário, sai do if. O desvio só vai acontecer se a !
= b, caso contrário não tem desvio!!! Portanto, Se
(a==b) entra no if e se (a!=b) vai para EXIT
(desvia).
Linguagem de Montagem:
BNE $s0, $s1, EXIT
ADD $t0, $s0, $s1
J EXIT
Linguagem de Máquina:
BNE $16, $17, EXIT
ADD $8, $16, $17
J EXIT
Representação:
5 16 17 EXIT
0 16 17 8 0 32
2 [endereço]
Código:
000101 10000 10001 [endereço]
000000 10000 10001 01000 00000 100000
000010 [endereço]
IF COMPOSTO
Instrução: if (a==b) { c = a + b } else { c = a — b}
Resolução:
Se a ==b então execute a instrução c = a + b, caso
contrário, execute a instrução c = a—b.
Linguagem de Montagem:
BNE $s0, $s1, ELSE
ADD $t0, $s0, $s1
J EXIT
ELSE SUB $t0, $s0, $s1
Linguagem de Máquina:
BNE $16, $17, EXIT
ADD $8, $16, $17
J EXIT
ELSE SUB $8, $16, $17
Representação:
5 16 17 EXIT
0 16 17 8 0 32
2 [endereço]
ELSE 0 16 17 8 0 34
Código:
000101 10000 10001 [endereço]
000000 10000 10001 01000 00000 100000
000010 [endereço]
ELSE 000000 10000 10001 01000 00000 100010
elainececiliagatto@gmail.com
FOR
Instrução:
for(indice=0; indice<10; indice++) {
soma = Vetor[indice] + soma; }
Resolução:
LOOP:
# t0 = 0 se $s0 >= $s3 ( i >= n), t0 = 1 caso contrário
SLT $t0, $s0, $s3
# se $s0 >= $s3 ( i >= n) vá para EXIT
BEQ $t0, $zero, EXIT
# $t1 = 4 * i, ou 4 * $s0
SLL $t1, $s0, 2
# t2 = ( vetor + ( 4 * i) )
ADD $t2, $s4, $t1
# $t3 = vetor[i], carregando o elemento do índice i
LW $t3, 0($t2)
# somando os elementos (soma = soma + vetor[i]
ADD $s1, $s1, $t3
# $s0 = $s0 + 1 (ou i = i + 1) é o contador
ADDI $s0, $s0, 1
# volta para o LOOP EXIT
J LOOP
WHILE
Instrução:
while(save[i] == k) { i += 1; }
Resolução:
LOOP:
SLL $t1, $s3, 2 # $t1 = 4 * i
ADD $t1, $t1, $s6 # $t1 = (4i + $s6)
LW $t0, 0 ($t1) # $t0 = save[i]
# vá para EXIT se save[i] diferente de k
BNE $t0, $s5, EXIT
ADDI $s3, $s3, 1 # $s3 = $s3 + 1 (ou i = i + 1)
J LOOP # volta para o LOOP
EXIT:
ARRAY
Instrução
int c[15] = {3, 0, 1, 2, -6, -2, 4, 10, 3, 7, 8, -9, -15, -20, -
87, 0};
int a = 0, b = 30;
a = b + c[10];
Resolução:
.data
c: .word 3, 0, 1, 2, -6, -2, 4, 10, 3, 7, 8, -9, -15, -20, -87,
0
.text
# determinando o valor para $s1 (b)
LI $s1, 30
# colocando o endereço do array em $s2
LA $s2, [Endereço. Exemplo: 80008]
# colocando o índice do array em $t2
LI $t2, 10
ADD $t2, $t2, $t2 # “2i”
ADD $t2, $t2, $t2 # “4i”
# combinando os dois componentes do
endereço
ADD $t1, $t2, $s2
# obtendo o valor da célula do array
LW $t0, 0 ( $t1 )
# executando a soma
ADD $s0, $s1, $t0
* podemos usar a instrução SLL no lugar
dos dois ADD para calcular o endereço:
SLL reg1, reg2, 2 # $t1 = 4 * i
MIPS 32 BITS CHEAT SHEET
Controle de Programa e Procedimentos
SWTICH/CASE
Instrução:
switch (k) {
case 0:
f = i + j; // k = 0 break;
case 1:
f = g + h; // k=1 break;
case 2:
f = g – h; // k = 2 break;
case 3:
f = i – j; // k = 3 break;
}
Resolução:
.data
jTable: .word L0,L1,L2,L3
.text
# Definindo as variáveis: carregando valores
para testar o código!
LI $s1, 15 # g = $s1 = 15
LI $s2, 20 # h = $s2 = 20
LI $s3, 10 # i = $s3 = 10
LI $s4, 5 # j = $s4 = 5
LI $s5, -1 # k = $s5 = 2
# $t4 = base address of the jump table
LA $t4, jTable
# Verificando os limites dos casos
SLT $t3, $s5, $zero
BNE $t3, $zero, EXIT
SLTI $t3, $s5, 4
BEQ $t3, $zero, EXIT
# Calculando o endereço correto do Label
SLL $t1, $s5, 2
ADD $t1, $t1, $t4
LW $t0, 0($t1)
JR $t0 # Seleção do Label
# Casos
L0: ADD $s0, $s3, $s4
J EXIT
L1: ADD $s0, $s1, $s2
J EXIT
L2: SUB $s0, $s1, $s2
J EXIT
L3: SUB $s0, $s3, $s4
EXIT:
elainececiliagatto@gmail.com
PROCEDIMENTOS
Instrução:
int exemplo ( int g, int h, int i, int j) {
int f;
f = ( g + h ) - ( i + j );
return f;
}
Resolução:
.text
LI $a0, 15 # g = $a0 = 15
LI $a1, 20 # h = $a1 = 20
LI $a2, 10 # i = $a2 = 10
LI $a3, 5 # j = $a3 = 5
EXEMPLO:
# salva os registradores temporários usados pelo corpo
da função
ADDI $sp, $sp, -12
SW $t1, 8 ($sp)
SW $t0, 4 ($sp)
SW $s0, 0 ($sp)
# corpo da função
ADD $t0, $a0, $a1 # (g + h) = 15 + 20 = 35
ADD $t1, $a2, $a3 # (i + j) = 10 + 5 = 15
SUB $s0, $t0, $t1 # (g + h ) - ( i + j) = 35 – 15 = 5
ADD $v0, $s0, $zero # retorno da função f ($v0 = $s0 + 0 )
LW $s0, 0 ($sp) # restaura o registrador para o caller
LW $t0, 4 ($sp) # restaura o registrador para o caller
LW $t1, 8 ($sp) # restaura o registrador para o caller
ADDI $sp, $sp, 12 # ajusta a pilha para excluir os 3 itens
JR $ra # volta para o endereço de retorno
Registradores para manipular procedimentos:
- $a0 até $a3: são os registradores de argumentos utilizados para a passagem de parâmetros;
- $v0 e $v1: são os registradores de valor utilizados para o retorno do procedimento;
- $ra: é o registrador de endereço do retorno do procedimento, utilizado na volta ao ponto de origem
da chamada do procedimento.
JAL: é uma instrução de salto (jump) utilizada unicamente para os procedimentos (jump and link). Essa
instrução desvia para um endereço e, ao mesmo tempo, salva o endereço da instrução seguinte no
registrador de endereço de retorno.
JR: uma instrução de desvio incondicional para o endereço especificado em um registrador; ela volta ao
endereço de retorno correto que é armazenado em $ra.
CALLER: é o programa que chama o procedimento, fornecendo os valores dos parâmetros.
CALLEE: é um procedimento que executa uma série de instruções armazenadas com base nos parâme-
tros fornecidos pelo Caller e depois retorna o controle para o Caller novamente.
SPILLED REGISTERS: é o processo de colocar variáveis menos utilizadas na memória
PILHA: gerencia as chamadas e retornos de procedimentos
STACK POINTER: é um valor que indica o endereço alocado mais recentemente em uma pilha, mostran-
do onde devem ser localizados os valores antigos dos registradores e onde os Spilled Registers devem
ser armazenados.
PUSH: coloca palavras para cada registrador salvo ou restaurado na pilha. Valores são colocados na
pilha pela subtração do valor do Stack Pointer.
POP: remove palavras da pilha. Valores são retirados da pilha pela soma do valor do stack pointer.
MIPS 32 BITS CHEAT SHEET
Memória, Montador e Sistema
elainececiliagatto@gmail.com
MEMÓRIA
- Segmento de texto:
+ É o segmento de memória que mantém as instruções do programa, começa no endereço 400000 hexa. O código
em linguagem de máquina para rotinas no arquivo de origem é mantido aqui.
- Segmento de dados:
+ A representação binária dos dados no arquivo de origem é mantida aqui.
+ Dados dinâmicos: são alocados pelo programa enquanto ele é executado.
+ Dados estáticos: são os objetos cujo tamanho é conhecido pelo compilador e cujo tempo de vida é a execução
inteira do programa
- Segmento de pilha:
+ O tamanho máximo da pilha de um programa não é conhecido antecipadamente
+ Conforme a pilha vai crescendo, o sistema operacional vai expandindo o segmento de pilha em direção ao seg-
mento de dados.
DIRETIVAS DO MONTADOR
.text: define um bloco de instruções.
.data: define um bloco de dados.
.align n: define que os itens nas linhas seguintes devem ser alinhados em um limite de 2n bytes, por exemplo,
.align 2 indica que o próximo item deverá estar em um limite da palavra.
.globl “nome”: indica que nome é um símbolo global e deve ser visível ao código armazenado em outros arquivos,
sendo nome o nome que você define.
.asciiz: armazena uma string terminada em nulo na memória.
CHAMADAS DO SISTEMA
Serviço Código Argumentos Resultado Observações
print_int 1 $a0 = integer
Recebe um inteiro e o imprime no
console
print_float 2 $f12 = float
Imprime um único número de
ponto flutuante
print_double 3 $f12 = double
Imprime um número de precisão
dupla
print_string 4 $a0 = string
Recebe um ponteiro para uma
string terminada em nulo e a
escreve no console
read_int 5 Integer em $v0
Leem uma linha inteira da entrada
incluindo o caractere de newline.
Caracteres após o número são
ignoradoso
read_float 6 Float em $f0
read_double 7 Double em $f0
read_string 8
$a0 = buffer
Igual a fgets do UNIX
$a1 = tamanho
sbrk 9 $a0 = valor Endereço em $v0
Retorna um ponteiro para um
bloco de memória contendo n
bytes adicionais
exit 10
Interrompe o programa que está
sendo executado
print_char 11 $a0 = char Escreve um único caractere
read_char 12 Char em $v0 Le um único caractere
open 13
$a0 = nome de arquivo
(string) Descritor de arquivo em
$a0
Chamadas da biblioteca padrão do
UNI
$a1 = flags
$a2 = modo
ead 14
$a0 = descritor de
arquivo Número de caracteres
lidos em $a0
$a1 = buffer
$a2 = tamanho
write 15
$a0 = descritor de
arquivo Número de caracteres
escritos em $a0
$a1 = buffer
$a2 = tamanho
close 16
$a0 = descritor de
arquivo

Mais conteúdo relacionado

Mais procurados

Lista (6) de exercícios de multiplicação e divisão
Lista (6) de exercícios de multiplicação e divisãoLista (6) de exercícios de multiplicação e divisão
Lista (6) de exercícios de multiplicação e divisãoOlicio Silva
 
[Curso Java Basico] Exercicios Aula 19
[Curso Java Basico] Exercicios Aula 19[Curso Java Basico] Exercicios Aula 19
[Curso Java Basico] Exercicios Aula 19Loiane Groner
 
Lista 1 - Exercicios combinaçoes-arranjo-permutações
Lista 1 - Exercicios combinaçoes-arranjo-permutaçõesLista 1 - Exercicios combinaçoes-arranjo-permutações
Lista 1 - Exercicios combinaçoes-arranjo-permutaçõeswab030
 
Relacoes-e-Funcoes-Exercicios.docx
Relacoes-e-Funcoes-Exercicios.docxRelacoes-e-Funcoes-Exercicios.docx
Relacoes-e-Funcoes-Exercicios.docxDanieleAlves177636
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)Armando Daniel
 
Tabela de identidades trigonometricas
Tabela de identidades trigonometricasTabela de identidades trigonometricas
Tabela de identidades trigonometricasRodrigo Sócrate
 
I lista de exercícios resolucao para o blog
I lista de exercícios   resolucao para o blogI lista de exercícios   resolucao para o blog
I lista de exercícios resolucao para o blogluisresponde
 
LISTA 02 E 03 - EXERCÍCIOS DE MATEMÁTICA 1º ANO - PROFª NEID
LISTA 02 E 03 - EXERCÍCIOS DE MATEMÁTICA 1º ANO - PROFª NEIDLISTA 02 E 03 - EXERCÍCIOS DE MATEMÁTICA 1º ANO - PROFª NEID
LISTA 02 E 03 - EXERCÍCIOS DE MATEMÁTICA 1º ANO - PROFª NEIDCriativa Niterói
 
Lista de exercícios 6º ano - 2ª etapa
Lista de exercícios   6º ano - 2ª etapaLista de exercícios   6º ano - 2ª etapa
Lista de exercícios 6º ano - 2ª etapaAlessandra Dias
 
Multiplicacao Divisao 7ano
Multiplicacao Divisao 7anoMultiplicacao Divisao 7ano
Multiplicacao Divisao 7anotioheraclito
 
Jogo labirinto(Numeros racionais)
Jogo labirinto(Numeros racionais)Jogo labirinto(Numeros racionais)
Jogo labirinto(Numeros racionais)Graziele Sousa
 
Origem E Fundamentos Da FunçãO QuadráTica Tarefa Final
Origem E Fundamentos Da FunçãO QuadráTica   Tarefa FinalOrigem E Fundamentos Da FunçãO QuadráTica   Tarefa Final
Origem E Fundamentos Da FunçãO QuadráTica Tarefa Finalguest7fc9be
 
Caminho Mínimo em Grafos - Algoritmo de Bellman-Ford
Caminho Mínimo em Grafos - Algoritmo de Bellman-FordCaminho Mínimo em Grafos - Algoritmo de Bellman-Ford
Caminho Mínimo em Grafos - Algoritmo de Bellman-FordGabriel Albuquerque
 
Avaliação do 7º ano do joão rodrigues
Avaliação do 7º ano do joão rodriguesAvaliação do 7º ano do joão rodrigues
Avaliação do 7º ano do joão rodriguesalunosderoberto
 

Mais procurados (20)

Lista (6) de exercícios de multiplicação e divisão
Lista (6) de exercícios de multiplicação e divisãoLista (6) de exercícios de multiplicação e divisão
Lista (6) de exercícios de multiplicação e divisão
 
[Curso Java Basico] Exercicios Aula 19
[Curso Java Basico] Exercicios Aula 19[Curso Java Basico] Exercicios Aula 19
[Curso Java Basico] Exercicios Aula 19
 
Lista 1 - Exercicios combinaçoes-arranjo-permutações
Lista 1 - Exercicios combinaçoes-arranjo-permutaçõesLista 1 - Exercicios combinaçoes-arranjo-permutações
Lista 1 - Exercicios combinaçoes-arranjo-permutações
 
Aritmética Digital
Aritmética DigitalAritmética Digital
Aritmética Digital
 
Relacoes-e-Funcoes-Exercicios.docx
Relacoes-e-Funcoes-Exercicios.docxRelacoes-e-Funcoes-Exercicios.docx
Relacoes-e-Funcoes-Exercicios.docx
 
Lista geometria
Lista geometriaLista geometria
Lista geometria
 
Ficha de trabalho 1 modulo 1
Ficha de trabalho 1   modulo 1Ficha de trabalho 1   modulo 1
Ficha de trabalho 1 modulo 1
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)
 
Tabela de identidades trigonometricas
Tabela de identidades trigonometricasTabela de identidades trigonometricas
Tabela de identidades trigonometricas
 
Probabilidade
ProbabilidadeProbabilidade
Probabilidade
 
I lista de exercícios resolucao para o blog
I lista de exercícios   resolucao para o blogI lista de exercícios   resolucao para o blog
I lista de exercícios resolucao para o blog
 
Análise Combinatória
Análise CombinatóriaAnálise Combinatória
Análise Combinatória
 
LISTA 02 E 03 - EXERCÍCIOS DE MATEMÁTICA 1º ANO - PROFª NEID
LISTA 02 E 03 - EXERCÍCIOS DE MATEMÁTICA 1º ANO - PROFª NEIDLISTA 02 E 03 - EXERCÍCIOS DE MATEMÁTICA 1º ANO - PROFª NEID
LISTA 02 E 03 - EXERCÍCIOS DE MATEMÁTICA 1º ANO - PROFª NEID
 
Lista de exercícios 6º ano - 2ª etapa
Lista de exercícios   6º ano - 2ª etapaLista de exercícios   6º ano - 2ª etapa
Lista de exercícios 6º ano - 2ª etapa
 
Divisão de polinômios
Divisão de polinômiosDivisão de polinômios
Divisão de polinômios
 
Multiplicacao Divisao 7ano
Multiplicacao Divisao 7anoMultiplicacao Divisao 7ano
Multiplicacao Divisao 7ano
 
Jogo labirinto(Numeros racionais)
Jogo labirinto(Numeros racionais)Jogo labirinto(Numeros racionais)
Jogo labirinto(Numeros racionais)
 
Origem E Fundamentos Da FunçãO QuadráTica Tarefa Final
Origem E Fundamentos Da FunçãO QuadráTica   Tarefa FinalOrigem E Fundamentos Da FunçãO QuadráTica   Tarefa Final
Origem E Fundamentos Da FunçãO QuadráTica Tarefa Final
 
Caminho Mínimo em Grafos - Algoritmo de Bellman-Ford
Caminho Mínimo em Grafos - Algoritmo de Bellman-FordCaminho Mínimo em Grafos - Algoritmo de Bellman-Ford
Caminho Mínimo em Grafos - Algoritmo de Bellman-Ford
 
Avaliação do 7º ano do joão rodrigues
Avaliação do 7º ano do joão rodriguesAvaliação do 7º ano do joão rodrigues
Avaliação do 7º ano do joão rodrigues
 

Semelhante a MIPS 32 Bits Cheat Sheet

Pbl assembly avr como atmega328 p - rev.1
Pbl   assembly avr como atmega328 p - rev.1Pbl   assembly avr como atmega328 p - rev.1
Pbl assembly avr como atmega328 p - rev.1andrademanoel
 
Estudo dirigido arquitetura didática
Estudo dirigido arquitetura didáticaEstudo dirigido arquitetura didática
Estudo dirigido arquitetura didáticaandrademanoel
 
Pymordida0 Semana de computação da SOCIESC - 2008/10
Pymordida0 Semana de computação da SOCIESC - 2008/10Pymordida0 Semana de computação da SOCIESC - 2008/10
Pymordida0 Semana de computação da SOCIESC - 2008/10Marco Mendes
 
Aula 7 conjunto de instrucoes
Aula 7   conjunto de instrucoesAula 7   conjunto de instrucoes
Aula 7 conjunto de instrucoesCratuscb
 
Tradutor de Pig Latin
Tradutor de Pig LatinTradutor de Pig Latin
Tradutor de Pig LatinElen Arantza
 
Revisão de linguagem C para Sistemas Embarcados
Revisão de linguagem C para Sistemas EmbarcadosRevisão de linguagem C para Sistemas Embarcados
Revisão de linguagem C para Sistemas EmbarcadosRodrigo Almeida
 
Py sintaxe
Py sintaxePy sintaxe
Py sintaxeFlapenta
 
Tp representação de informação
Tp   representação de informaçãoTp   representação de informação
Tp representação de informaçãoLuis Lino Ferreira
 
Display de 7 segmentos multiplexados
Display de 7 segmentos multiplexadosDisplay de 7 segmentos multiplexados
Display de 7 segmentos multiplexadosRodrigo Almeida
 
EDA_Aula_09_Complexidade_2021.1.pdf
EDA_Aula_09_Complexidade_2021.1.pdfEDA_Aula_09_Complexidade_2021.1.pdf
EDA_Aula_09_Complexidade_2021.1.pdfSimoneSantos16595
 
Apostila de comandos 8051
Apostila de comandos 8051Apostila de comandos 8051
Apostila de comandos 8051Paulo Cerqueira
 

Semelhante a MIPS 32 Bits Cheat Sheet (20)

Guia rápido mips (1)
Guia rápido mips (1)Guia rápido mips (1)
Guia rápido mips (1)
 
MIPS 32 BITS
MIPS 32 BITSMIPS 32 BITS
MIPS 32 BITS
 
Pbl assembly avr como atmega328 p - rev.1
Pbl   assembly avr como atmega328 p - rev.1Pbl   assembly avr como atmega328 p - rev.1
Pbl assembly avr como atmega328 p - rev.1
 
Estudo dirigido arquitetura didática
Estudo dirigido arquitetura didáticaEstudo dirigido arquitetura didática
Estudo dirigido arquitetura didática
 
Pymordida0 Semana de computação da SOCIESC - 2008/10
Pymordida0 Semana de computação da SOCIESC - 2008/10Pymordida0 Semana de computação da SOCIESC - 2008/10
Pymordida0 Semana de computação da SOCIESC - 2008/10
 
8085 2
8085 28085 2
8085 2
 
Clp ab avancado
Clp ab avancadoClp ab avancado
Clp ab avancado
 
Aula 7 conjunto de instrucoes
Aula 7   conjunto de instrucoesAula 7   conjunto de instrucoes
Aula 7 conjunto de instrucoes
 
Tradutor de Pig Latin
Tradutor de Pig LatinTradutor de Pig Latin
Tradutor de Pig Latin
 
Revisão de linguagem C para Sistemas Embarcados
Revisão de linguagem C para Sistemas EmbarcadosRevisão de linguagem C para Sistemas Embarcados
Revisão de linguagem C para Sistemas Embarcados
 
Canivete shell
Canivete shellCanivete shell
Canivete shell
 
Canivete shell
Canivete shellCanivete shell
Canivete shell
 
Py sintaxe
Py sintaxePy sintaxe
Py sintaxe
 
Tp representação de informação
Tp   representação de informaçãoTp   representação de informação
Tp representação de informação
 
Display de 7 segmentos multiplexados
Display de 7 segmentos multiplexadosDisplay de 7 segmentos multiplexados
Display de 7 segmentos multiplexados
 
CLP S7 300 E S7 400
CLP S7 300 E S7 400CLP S7 300 E S7 400
CLP S7 300 E S7 400
 
CLP S7 300 E S7 400
CLP S7 300 E S7 400CLP S7 300 E S7 400
CLP S7 300 E S7 400
 
Pro2 04p
Pro2 04pPro2 04p
Pro2 04p
 
EDA_Aula_09_Complexidade_2021.1.pdf
EDA_Aula_09_Complexidade_2021.1.pdfEDA_Aula_09_Complexidade_2021.1.pdf
EDA_Aula_09_Complexidade_2021.1.pdf
 
Apostila de comandos 8051
Apostila de comandos 8051Apostila de comandos 8051
Apostila de comandos 8051
 

Mais de Elaine Cecília Gatto

A influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etariaA influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etariaElaine Cecília Gatto
 
Inteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à MedicinaInteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à MedicinaElaine Cecília Gatto
 
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...Elaine Cecília Gatto
 
Apresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPCApresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPCElaine Cecília Gatto
 
Como a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptxComo a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptxElaine Cecília Gatto
 
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...Elaine Cecília Gatto
 
Community Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCarCommunity Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCarElaine Cecília Gatto
 
Classificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de CorrelaçõesClassificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de CorrelaçõesElaine Cecília Gatto
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...Elaine Cecília Gatto
 
Community Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label ClassificationCommunity Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label ClassificationElaine Cecília Gatto
 
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdfMulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdfElaine Cecília Gatto
 
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...Elaine Cecília Gatto
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...Elaine Cecília Gatto
 
Pipeline desdobramento escalonamento
Pipeline desdobramento escalonamentoPipeline desdobramento escalonamento
Pipeline desdobramento escalonamentoElaine Cecília Gatto
 
Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bitsResumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bitsElaine Cecília Gatto
 
Exploring label correlations for partitioning the label space in multi label ...
Exploring label correlations for partitioning the label space in multi label ...Exploring label correlations for partitioning the label space in multi label ...
Exploring label correlations for partitioning the label space in multi label ...Elaine Cecília Gatto
 

Mais de Elaine Cecília Gatto (20)

A influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etariaA influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etaria
 
Inteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à MedicinaInteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à Medicina
 
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
 
Apresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPCApresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPC
 
entrevista r7.pdf
entrevista r7.pdfentrevista r7.pdf
entrevista r7.pdf
 
Como a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptxComo a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptx
 
Empoderamento Feminino
Empoderamento FemininoEmpoderamento Feminino
Empoderamento Feminino
 
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
 
Community Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCarCommunity Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCar
 
Classificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de CorrelaçõesClassificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de Correlações
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
 
Community Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label ClassificationCommunity Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label Classification
 
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdfMulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
 
Curtinhas de sábado.pdf
Curtinhas de sábado.pdfCurtinhas de sábado.pdf
Curtinhas de sábado.pdf
 
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
 
Pipeline desdobramento escalonamento
Pipeline desdobramento escalonamentoPipeline desdobramento escalonamento
Pipeline desdobramento escalonamento
 
Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bitsResumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
 
Exploring label correlations for partitioning the label space in multi label ...
Exploring label correlations for partitioning the label space in multi label ...Exploring label correlations for partitioning the label space in multi label ...
Exploring label correlations for partitioning the label space in multi label ...
 
Número de Bell
Número de BellNúmero de Bell
Número de Bell
 

Último

Rotas Transaarianas como o desrto prouz riqueza
Rotas Transaarianas como o desrto prouz riquezaRotas Transaarianas como o desrto prouz riqueza
Rotas Transaarianas como o desrto prouz riquezaronaldojacademico
 
Noções de Farmacologia - Flávia Soares.pdf
Noções de Farmacologia - Flávia Soares.pdfNoções de Farmacologia - Flávia Soares.pdf
Noções de Farmacologia - Flávia Soares.pdflucassilva721057
 
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdfPROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdfMarianaMoraesMathias
 
Revista-Palavra-Viva-Profetas-Menores (1).pdf
Revista-Palavra-Viva-Profetas-Menores (1).pdfRevista-Palavra-Viva-Profetas-Menores (1).pdf
Revista-Palavra-Viva-Profetas-Menores (1).pdfMárcio Azevedo
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdfLeloIurk1
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....LuizHenriquedeAlmeid6
 
Ficha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFicha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFtimaMoreira35
 
Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManuais Formação
 
o ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfo ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfCamillaBrito19
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
ATIVIDADE PARA ENTENDER -Pizzaria dos Descritores
ATIVIDADE PARA ENTENDER -Pizzaria dos DescritoresATIVIDADE PARA ENTENDER -Pizzaria dos Descritores
ATIVIDADE PARA ENTENDER -Pizzaria dos DescritoresAnaCarinaKucharski1
 
Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?AnabelaGuerreiro7
 
Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelGilber Rubim Rangel
 
Construção (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãConstrução (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãIlda Bicacro
 
Aula de História Ensino Médio Mesopotâmia.pdf
Aula de História Ensino Médio Mesopotâmia.pdfAula de História Ensino Médio Mesopotâmia.pdf
Aula de História Ensino Médio Mesopotâmia.pdfFernandaMota99
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.Mary Alvarenga
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...Rosalina Simão Nunes
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...azulassessoria9
 

Último (20)

Rotas Transaarianas como o desrto prouz riqueza
Rotas Transaarianas como o desrto prouz riquezaRotas Transaarianas como o desrto prouz riqueza
Rotas Transaarianas como o desrto prouz riqueza
 
Noções de Farmacologia - Flávia Soares.pdf
Noções de Farmacologia - Flávia Soares.pdfNoções de Farmacologia - Flávia Soares.pdf
Noções de Farmacologia - Flávia Soares.pdf
 
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdfPROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
 
Revista-Palavra-Viva-Profetas-Menores (1).pdf
Revista-Palavra-Viva-Profetas-Menores (1).pdfRevista-Palavra-Viva-Profetas-Menores (1).pdf
Revista-Palavra-Viva-Profetas-Menores (1).pdf
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
 
Ficha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFicha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdf
 
Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envio
 
o ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfo ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdf
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
ATIVIDADE PARA ENTENDER -Pizzaria dos Descritores
ATIVIDADE PARA ENTENDER -Pizzaria dos DescritoresATIVIDADE PARA ENTENDER -Pizzaria dos Descritores
ATIVIDADE PARA ENTENDER -Pizzaria dos Descritores
 
Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?
 
Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim Rangel
 
Construção (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãConstrução (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! Sertã
 
Aula de História Ensino Médio Mesopotâmia.pdf
Aula de História Ensino Médio Mesopotâmia.pdfAula de História Ensino Médio Mesopotâmia.pdf
Aula de História Ensino Médio Mesopotâmia.pdf
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
 
CINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULACINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULA
 

MIPS 32 Bits Cheat Sheet

  • 1. MIPS 32 BITS CHEAT SHEET Tipos de Instruções opcode rs rt rd Shamt Funct 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits Código da operação Registrador Fonte Registrador Fonte Registrador Destino Deslocamento Código de operação secundário Instruções Tipo R opcode rs rt endereço 6 bits 5 bits 5 bits 16 bits Código da Operação Registrador Registrador Endereço de memória Instruções Tipo I opcode rs endereço 6 bits 5 bits 21 bits Código da operação Registrador Endereço de memória Instruções Tipo J Instrução C a = b + c; Linguagem de Montagem ADD $t0, $s0, $s1 Linguagem de máquina ADD $8, $16, $17 Representação 0 16 17 8 0 32 Código de Máquina 000000 10000 10001 01000 00000 100000 Instrução C g = h + a[8]; Linguagem de Montagem LW $t0, 8 ($s3) ADD $s1, $s2, $t0 Linguagem de Máquina LW $8, 8 ($19) ADD $16, $17, $8 Representação 35 8 19 8 0 17 8 16 0 32 Código de Máquina 100011 010000 10011 0000 0000 0000 1000 000000 10001 01000 10000 00000 100000 Instrução C EXIT, ELSE, ou algum outro label, ou retorno de função Linguagem de Montagem JR $t0 Linguagem de máquina JR $8 Representação 0 8 8 Código de Máquina 000000 01001 00000 00000 00000 001000 elainececiliagatto@gmail.com
  • 2. MIPS 32 BITS CHEAT SHEET Registradores e Memória opcode Operação básica da instrução rs Registrador do primeiro operando fonte rt Registrador do segundo operando fonte rd Registrador do operando destino shamt Shift amount, em português, quantidade de deslocamento. Utilizado em algumas instru- ções lógicas funct Função ou código de função. É um código variante do opcode. Utilizado em algumas instruções aritméticas. Registrador Decimal Binário Uso $zero 0 000 000 Constante zero $at 1 000 001 Montador $v0 2 000 010 Avaliação de expressão e resultados de função $v1 3 000 011 $a0 4 000 100 Argumentos de Função $a1 5 000 101 $a2 6 001 110 $a3 7 000 111 $k0 26 011 010 Reservado para o Kernel do S.O. $k1 27 011 011 $gp 28 011 100 Global pointer $sp 29 011 101 Stack pointer $fp 30 011 110 Frame pointer $ra 31 011 111 Endereço de retorno da fun- ção Registrador Decimal Binário Uso $t0 8 001 000 Registrado- res tempo- rários. Não preservados pela chama- da. $t1 9 001 001 $t2 10 001 010 $t3 11 001 011 $t4 12 001 100 $t5 13 001 101 $t6 14 001 110 $t7 15 001 111 $s0 16 010 000 Registrado- res tempo- rários sal- vos. Preser- vados pela camada. $s1 17 010 001 $s2 18 010 010 $s3 19 010 011 $s4 20 010 100 $s5 21 010 101 $s6 22 010 110 $s7 23 010 111 Segmento de Pilha Dados Dinâmicos Dados Estáticos Segmento de Texto Reservado MEMÓRIA ... Registros salvos Argumento 5 Argumento 6 FRAME DE PILHA Variáveis Locais Endereço de Memória mais alto Endereço de Memória mais baixo $sp $fp - 32 registradores de propósito geral; - HI e LO: registradores de propósito especial para guardar resultados de divisão e multiplicação de inteiros e outras operações acumuladoras; - PC: counter program, ou contador de programa, registrador de propósito especial; elainececiliagatto@gmail.com 4 co-processadores: - CP0: cpu, sistema de controle; memória virtual, execções; - CP1: ponto flutuanteCoprocessor 2 (CP2) is available for specific imple- mentations; - CP2: implementações específicas - CP3: ponto flutuante mips 64 bits
  • 3. Memória Word MIPS 32 BITS CHEAT SHEET Modos de Endereçamento e Instruções op rs rt imediato Imediato op rd shamt funct rs rt Registrador Registro op rs rt Endereço Base Half Word Byte Registrador + Memória Word PC op rs rt Endereço Relativo ao PC + Memória Word PC op Endereço Pseudodireto + - Instruções MIPS possuem endereços em BYTES - Os endereços das palavras sequenciais diferem em 4 - MIPS é Big Endian 20 000 20 004 20 008 20 012 20 016 O operando é uma constante dentro da pró- pria instrução. O operando é um registrador O operando está no local de memória cujo endereço é a soma de um regis- trador e uma constante na instrução O endereço de desvio é a soma do PC e uma constante na instrução O endereço de jump são os 26 bits da ins- trução concatenados com os bits mais altos do PC Instrução Código Add (32)10 (20)16 addi (08)10 (08)16 addiu (09)10 (09)16 And (36)10 (24)16 beq (04)10 (04)16 bne (05)10 (05)16 div (26)10 (1A)16 divu (27)10 (1B)16 j (02)10 (02)16 jr (8)10 (8)16 lw (35)10 (23)16 mult (24)10 (18)16 Nor (39)10 (27)16 Or (37)10 (25)16 sll (0)10 (0)16 Slt (42)10 (2A)16 sra (2)10 (2)16 Sub (34)10 (22)16 subu (35)10 (23)16 sw (43)10 (2B)16 Xor (38)10 (26)16 Principais Instruções Instruções Implementadas - Aritméticas, Lógicas e Relacionais; - Desvios condicionais e incondicio- nais; - Manipulação de operandos constan- tes e imediatos; - Tratamento de Exceções e Interrup- ções; - Carga e Armazenamento; - Transferência de dados; - Ponto Flutuante. elainececiliagatto@gmail.com
  • 4. MIPS 32 BITS CHEAT SHEET BNE, BEQ, SLT e SLTI Passo a passo: conversão ALTO NÍVEL para ASSEMBLY 1. Converter a instrução de alto nível para Linguagem de Montagem; 2. Converter a instrução na Linguagem de Montagem para Linguagem de Má- quina; 3. Fazer a representação corresponden- te da Linguagem de Máquina; 4. Converter a representação da Lin- guagem de Máquina para Código de Máquina. Passo a passo: conversão ASSEMBLY para ALTO NÍVEL 1. Converter o Código de Máquina para a Representação; 2. Converter a Representação em Lin- guagem de Máquina; 3. Converter a Linguagem de Máquina para Linguagem de Montagem; 4. Converter Linguagem de Montagem para instrução de alto nível; inicio reg1 == reg2 ? instruções Desvie para cá se REG1 != REG2 REG1 == REG2 Não executa se reg1 != reg2 BNE: BRANCH IF NOT EQUAL Desvie se não for igual. Testa uma desigualdade. A próxima instrução a ser executada é aquela que estiver armazenada no endereço do LABEL se o valor no registrador 1 não for igual ao valor no registrador 2. BNE REG1, REG2, ELSE # vá para ELSE se REG1 != REG2 ..... instruções ELSE inicio reg1 == reg2 ? instruções REG1 != REG2 Não executa se reg1 == reg2 ..... instruções ELSE BEQ: BRANCH IF EQUAL Desvie se for igual. Testa uma igualdade. A próxima instrução a ser executada é aquela que estiver armazenada no endereço do LABEL se o valor no registrador 1 for igual ao valor no registra- dor 2. BEQ REG1, REG2, ELSE # vá para ELSE se REG1 == REG2 Desvie para cá se REG1 == REG2 Cálculo do endereço relativo da memória - Instruções de desvio acrescentam X palavras, ou X bytes, ao endereço da instrução seguinte à si mesma; - Especificam o destino do desvio em relação à instrução seguin- te e não em relação à instrução de desvio ou ao uso do endereço de destino completo Exemplo: 80000 bne $s3, $s4, Else 80004 add $s0, $s1, $s2 # instrução seguinte à bne 80008 j Exit # + 2 palavras ou 8 bytes # 80008 + 4 = 80012 80012 ELSE: sub $s0, $s1, $s2 80016 Exit: # endereço completo 20004 * 4 SLT: SET ON LESS THAN Compara dois valores de dois registradores diferentes. Atribui o valor 1 a um tercei- ro registrador se o valor do primeiro registrador for menor que o valor do segun- do registrador. Caso contrá- rio, atribui zero. SLT REG3, REG1, REG2 REG3 = 1 se REG1 < REG2 REG3 = 0 se REG1 > REG2 SLTI: SET ON LESS THAN IMMEDIATE Compara o valor de um regis- trador com um valor constan- te ou imediato. Atribui o valor 1 a um terceiro regis- trador se o valor do primeiro registrador for menor que o valor do segundo registrador. Caso contrário, atribui zero. SLTI REG3, REG1, VALOR REG3 = 1 se REG1 < VALOR REG3 = 0 se REG1 > VALOR elainececiliagatto@gmail.com
  • 5. MIPS 32 BITS CHEAT SHEET LOAD WORD e STORE WORD LOAD WORD Transfere dados da memória para o registrador LW REG1, valor (REG2) # REG1 = memória [ REG2 + valor ] EXEMPLO 1: LOAD Instrução: g = h + a[8]; * multiplicar 8 por 4 devido à restrição de alinhamento Linguagem de montagem: LW $t0, 32($s3) ADD $s0, $s1, $t0 Linguagem de máquina: LW $8, 32 ($19) ADD $16, $17, $8 Representação: 35 8 19 32 0 17 8 16 0 32 Código de Máquina: 100011 01000 10011 00000 00000 100000 000000 10001 01000 10000 00000 100000 STORE WORD Transfere dados do registrador para a memória SW REG1, valor (REG2) # memória [ REG2 + valor ] = REG1 EXEMPLO 2: STORE Instrução: g[8] = h + a; * multiplicar 8 por 4 devido à restrição de alinhamento Linguagem de montagem: ADD $t0, $s1, $t0 SW $t0, 32($s0) Linguagem de máquina: ADD $8, $17, $8 SW $8, 32 ($16) Representação: 0 8 17 8 0 32 43 8 16 32 Código de Máquina: 000000 01000 10001 01000 00000 100000 101011 01000 01000 00000 00000 100000 EXEMPLO 3: LOAD E STORE Instrução: g[2] = h + a[4]; Linguagem de montagem: LW $t0, 16 ($s0) ADD $t1, $s1, $t0 SW $t1, 8 ($s2) Linguagem de máquina: LW $8, 16 ($16) ADD $9, $17, $8 SW $9, 4 ($18) Representação: 35 8 16 16 0 17 8 9 0 32 43 9 18 4 Código de Máquina: 100011 01000 10000 00000 00000 10000 000000 10001 01000 01001 00000 100000 101011 01001 10010 00000 00000 000100 elainececiliagatto@gmail.com EXEMPLO 4: ÍNDICE VARIÁVEL Instrução: g = h + a[i]; Linguagem de montagem: ADD $t0, $s3, $s3 # 2*i ADD $t0, $t0, $t0 # 4*i ADD $t0, $t0, $s2 # a[i]=(4*i+$s2) LW $t1,0($t0) # $t1=a[i] ADD $s0, $s1, $t1 # g=h+a[i] Linguagem de máquina: ADD $8, $19, $19 # 2*i ADD $8, $8, $8 # 4*i ADD $8, $8, $18 # a[i]=(4*i+$s2) LW $9,0($8) # $t1=a[i] ADD $16, $17, $9 # g=h+a[i] Representação: 0 19 19 8 0 32 0 8 8 8 0 32 0 8 18 8 0 32 35 9 8 0
  • 6. MIPS 32 BITS CHEAT SHEET Controle de Programa e Array IF SIMPLES Instrução: if (a==b){ c = a + b } Resolução: Se a ==b então execute a instrução c = a + b, caso contrário, sai do if. O desvio só vai acontecer se a ! = b, caso contrário não tem desvio!!! Portanto, Se (a==b) entra no if e se (a!=b) vai para EXIT (desvia). Linguagem de Montagem: BNE $s0, $s1, EXIT ADD $t0, $s0, $s1 J EXIT Linguagem de Máquina: BNE $16, $17, EXIT ADD $8, $16, $17 J EXIT Representação: 5 16 17 EXIT 0 16 17 8 0 32 2 [endereço] Código: 000101 10000 10001 [endereço] 000000 10000 10001 01000 00000 100000 000010 [endereço] IF COMPOSTO Instrução: if (a==b) { c = a + b } else { c = a — b} Resolução: Se a ==b então execute a instrução c = a + b, caso contrário, execute a instrução c = a—b. Linguagem de Montagem: BNE $s0, $s1, ELSE ADD $t0, $s0, $s1 J EXIT ELSE SUB $t0, $s0, $s1 Linguagem de Máquina: BNE $16, $17, EXIT ADD $8, $16, $17 J EXIT ELSE SUB $8, $16, $17 Representação: 5 16 17 EXIT 0 16 17 8 0 32 2 [endereço] ELSE 0 16 17 8 0 34 Código: 000101 10000 10001 [endereço] 000000 10000 10001 01000 00000 100000 000010 [endereço] ELSE 000000 10000 10001 01000 00000 100010 elainececiliagatto@gmail.com FOR Instrução: for(indice=0; indice<10; indice++) { soma = Vetor[indice] + soma; } Resolução: LOOP: # t0 = 0 se $s0 >= $s3 ( i >= n), t0 = 1 caso contrário SLT $t0, $s0, $s3 # se $s0 >= $s3 ( i >= n) vá para EXIT BEQ $t0, $zero, EXIT # $t1 = 4 * i, ou 4 * $s0 SLL $t1, $s0, 2 # t2 = ( vetor + ( 4 * i) ) ADD $t2, $s4, $t1 # $t3 = vetor[i], carregando o elemento do índice i LW $t3, 0($t2) # somando os elementos (soma = soma + vetor[i] ADD $s1, $s1, $t3 # $s0 = $s0 + 1 (ou i = i + 1) é o contador ADDI $s0, $s0, 1 # volta para o LOOP EXIT J LOOP WHILE Instrução: while(save[i] == k) { i += 1; } Resolução: LOOP: SLL $t1, $s3, 2 # $t1 = 4 * i ADD $t1, $t1, $s6 # $t1 = (4i + $s6) LW $t0, 0 ($t1) # $t0 = save[i] # vá para EXIT se save[i] diferente de k BNE $t0, $s5, EXIT ADDI $s3, $s3, 1 # $s3 = $s3 + 1 (ou i = i + 1) J LOOP # volta para o LOOP EXIT: ARRAY Instrução int c[15] = {3, 0, 1, 2, -6, -2, 4, 10, 3, 7, 8, -9, -15, -20, - 87, 0}; int a = 0, b = 30; a = b + c[10]; Resolução: .data c: .word 3, 0, 1, 2, -6, -2, 4, 10, 3, 7, 8, -9, -15, -20, -87, 0 .text # determinando o valor para $s1 (b) LI $s1, 30 # colocando o endereço do array em $s2 LA $s2, [Endereço. Exemplo: 80008] # colocando o índice do array em $t2 LI $t2, 10 ADD $t2, $t2, $t2 # “2i” ADD $t2, $t2, $t2 # “4i” # combinando os dois componentes do endereço ADD $t1, $t2, $s2 # obtendo o valor da célula do array LW $t0, 0 ( $t1 ) # executando a soma ADD $s0, $s1, $t0 * podemos usar a instrução SLL no lugar dos dois ADD para calcular o endereço: SLL reg1, reg2, 2 # $t1 = 4 * i
  • 7. MIPS 32 BITS CHEAT SHEET Controle de Programa e Procedimentos SWTICH/CASE Instrução: switch (k) { case 0: f = i + j; // k = 0 break; case 1: f = g + h; // k=1 break; case 2: f = g – h; // k = 2 break; case 3: f = i – j; // k = 3 break; } Resolução: .data jTable: .word L0,L1,L2,L3 .text # Definindo as variáveis: carregando valores para testar o código! LI $s1, 15 # g = $s1 = 15 LI $s2, 20 # h = $s2 = 20 LI $s3, 10 # i = $s3 = 10 LI $s4, 5 # j = $s4 = 5 LI $s5, -1 # k = $s5 = 2 # $t4 = base address of the jump table LA $t4, jTable # Verificando os limites dos casos SLT $t3, $s5, $zero BNE $t3, $zero, EXIT SLTI $t3, $s5, 4 BEQ $t3, $zero, EXIT # Calculando o endereço correto do Label SLL $t1, $s5, 2 ADD $t1, $t1, $t4 LW $t0, 0($t1) JR $t0 # Seleção do Label # Casos L0: ADD $s0, $s3, $s4 J EXIT L1: ADD $s0, $s1, $s2 J EXIT L2: SUB $s0, $s1, $s2 J EXIT L3: SUB $s0, $s3, $s4 EXIT: elainececiliagatto@gmail.com PROCEDIMENTOS Instrução: int exemplo ( int g, int h, int i, int j) { int f; f = ( g + h ) - ( i + j ); return f; } Resolução: .text LI $a0, 15 # g = $a0 = 15 LI $a1, 20 # h = $a1 = 20 LI $a2, 10 # i = $a2 = 10 LI $a3, 5 # j = $a3 = 5 EXEMPLO: # salva os registradores temporários usados pelo corpo da função ADDI $sp, $sp, -12 SW $t1, 8 ($sp) SW $t0, 4 ($sp) SW $s0, 0 ($sp) # corpo da função ADD $t0, $a0, $a1 # (g + h) = 15 + 20 = 35 ADD $t1, $a2, $a3 # (i + j) = 10 + 5 = 15 SUB $s0, $t0, $t1 # (g + h ) - ( i + j) = 35 – 15 = 5 ADD $v0, $s0, $zero # retorno da função f ($v0 = $s0 + 0 ) LW $s0, 0 ($sp) # restaura o registrador para o caller LW $t0, 4 ($sp) # restaura o registrador para o caller LW $t1, 8 ($sp) # restaura o registrador para o caller ADDI $sp, $sp, 12 # ajusta a pilha para excluir os 3 itens JR $ra # volta para o endereço de retorno Registradores para manipular procedimentos: - $a0 até $a3: são os registradores de argumentos utilizados para a passagem de parâmetros; - $v0 e $v1: são os registradores de valor utilizados para o retorno do procedimento; - $ra: é o registrador de endereço do retorno do procedimento, utilizado na volta ao ponto de origem da chamada do procedimento. JAL: é uma instrução de salto (jump) utilizada unicamente para os procedimentos (jump and link). Essa instrução desvia para um endereço e, ao mesmo tempo, salva o endereço da instrução seguinte no registrador de endereço de retorno. JR: uma instrução de desvio incondicional para o endereço especificado em um registrador; ela volta ao endereço de retorno correto que é armazenado em $ra. CALLER: é o programa que chama o procedimento, fornecendo os valores dos parâmetros. CALLEE: é um procedimento que executa uma série de instruções armazenadas com base nos parâme- tros fornecidos pelo Caller e depois retorna o controle para o Caller novamente. SPILLED REGISTERS: é o processo de colocar variáveis menos utilizadas na memória PILHA: gerencia as chamadas e retornos de procedimentos STACK POINTER: é um valor que indica o endereço alocado mais recentemente em uma pilha, mostran- do onde devem ser localizados os valores antigos dos registradores e onde os Spilled Registers devem ser armazenados. PUSH: coloca palavras para cada registrador salvo ou restaurado na pilha. Valores são colocados na pilha pela subtração do valor do Stack Pointer. POP: remove palavras da pilha. Valores são retirados da pilha pela soma do valor do stack pointer.
  • 8. MIPS 32 BITS CHEAT SHEET Memória, Montador e Sistema elainececiliagatto@gmail.com MEMÓRIA - Segmento de texto: + É o segmento de memória que mantém as instruções do programa, começa no endereço 400000 hexa. O código em linguagem de máquina para rotinas no arquivo de origem é mantido aqui. - Segmento de dados: + A representação binária dos dados no arquivo de origem é mantida aqui. + Dados dinâmicos: são alocados pelo programa enquanto ele é executado. + Dados estáticos: são os objetos cujo tamanho é conhecido pelo compilador e cujo tempo de vida é a execução inteira do programa - Segmento de pilha: + O tamanho máximo da pilha de um programa não é conhecido antecipadamente + Conforme a pilha vai crescendo, o sistema operacional vai expandindo o segmento de pilha em direção ao seg- mento de dados. DIRETIVAS DO MONTADOR .text: define um bloco de instruções. .data: define um bloco de dados. .align n: define que os itens nas linhas seguintes devem ser alinhados em um limite de 2n bytes, por exemplo, .align 2 indica que o próximo item deverá estar em um limite da palavra. .globl “nome”: indica que nome é um símbolo global e deve ser visível ao código armazenado em outros arquivos, sendo nome o nome que você define. .asciiz: armazena uma string terminada em nulo na memória. CHAMADAS DO SISTEMA Serviço Código Argumentos Resultado Observações print_int 1 $a0 = integer Recebe um inteiro e o imprime no console print_float 2 $f12 = float Imprime um único número de ponto flutuante print_double 3 $f12 = double Imprime um número de precisão dupla print_string 4 $a0 = string Recebe um ponteiro para uma string terminada em nulo e a escreve no console read_int 5 Integer em $v0 Leem uma linha inteira da entrada incluindo o caractere de newline. Caracteres após o número são ignoradoso read_float 6 Float em $f0 read_double 7 Double em $f0 read_string 8 $a0 = buffer Igual a fgets do UNIX $a1 = tamanho sbrk 9 $a0 = valor Endereço em $v0 Retorna um ponteiro para um bloco de memória contendo n bytes adicionais exit 10 Interrompe o programa que está sendo executado print_char 11 $a0 = char Escreve um único caractere read_char 12 Char em $v0 Le um único caractere open 13 $a0 = nome de arquivo (string) Descritor de arquivo em $a0 Chamadas da biblioteca padrão do UNI $a1 = flags $a2 = modo ead 14 $a0 = descritor de arquivo Número de caracteres lidos em $a0 $a1 = buffer $a2 = tamanho write 15 $a0 = descritor de arquivo Número de caracteres escritos em $a0 $a1 = buffer $a2 = tamanho close 16 $a0 = descritor de arquivo