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

Programação básica de microcontroladores
Programação básica de microcontroladoresProgramação básica de microcontroladores
Programação básica de microcontroladoresDanilo Morais Pagano
 
Lógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicosLógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicosMauro Pereira
 
Aula 12 – Sistema de Numeração (Conversão de Bases)
Aula 12 – Sistema de Numeração (Conversão de Bases)Aula 12 – Sistema de Numeração (Conversão de Bases)
Aula 12 – Sistema de Numeração (Conversão de Bases)Vitor Hugo Melo Araújo
 
Montagem manutenção de computadores
Montagem manutenção de computadoresMontagem manutenção de computadores
Montagem manutenção de computadoressetilsonadobmov
 
Manutenção de Computadores - Aula 1
Manutenção de Computadores - Aula 1Manutenção de Computadores - Aula 1
Manutenção de Computadores - Aula 1Guilherme Nonino Rosa
 
Aula 01 - Revisão Algoritmo 1
Aula 01  - Revisão Algoritmo 1Aula 01  - Revisão Algoritmo 1
Aula 01 - Revisão Algoritmo 1Eder Samaniego
 
Variáveis, constantes e tipos de dados
Variáveis, constantes e tipos de dadosVariáveis, constantes e tipos de dados
Variáveis, constantes e tipos de dadosBrunoSilvaSantana
 
Programando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonProgramando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonAlvaro Oliveira
 
Sistema operacional introdução
Sistema operacional introduçãoSistema operacional introdução
Sistema operacional introduçãoCleber Ramos
 
Prova algoritmos
Prova algoritmosProva algoritmos
Prova algoritmospronatecvja
 
Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)Gercélia Ramos
 
Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)Gercélia Ramos
 
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º BimestreMaterial Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º BimestreElaine Cecília Gatto
 

Mais procurados (20)

Programação básica de microcontroladores
Programação básica de microcontroladoresProgramação básica de microcontroladores
Programação básica de microcontroladores
 
Aula 11 pc - unioes
Aula 11   pc - unioesAula 11   pc - unioes
Aula 11 pc - unioes
 
Linguagem C - Vetores
Linguagem C - VetoresLinguagem C - Vetores
Linguagem C - Vetores
 
Estrutura de repetição
Estrutura de repetiçãoEstrutura de repetição
Estrutura de repetição
 
Lógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicosLógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicos
 
Aula01 - Logica de Programação
Aula01 - Logica de ProgramaçãoAula01 - Logica de Programação
Aula01 - Logica de Programação
 
Manual básico de conversão de pseudocódigo para C#
Manual básico de conversão de pseudocódigo para C#Manual básico de conversão de pseudocódigo para C#
Manual básico de conversão de pseudocódigo para C#
 
Aula 12 – Sistema de Numeração (Conversão de Bases)
Aula 12 – Sistema de Numeração (Conversão de Bases)Aula 12 – Sistema de Numeração (Conversão de Bases)
Aula 12 – Sistema de Numeração (Conversão de Bases)
 
Montagem manutenção de computadores
Montagem manutenção de computadoresMontagem manutenção de computadores
Montagem manutenção de computadores
 
Manutenção de Computadores - Aula 1
Manutenção de Computadores - Aula 1Manutenção de Computadores - Aula 1
Manutenção de Computadores - Aula 1
 
Aula 01 - Revisão Algoritmo 1
Aula 01  - Revisão Algoritmo 1Aula 01  - Revisão Algoritmo 1
Aula 01 - Revisão Algoritmo 1
 
Variáveis, constantes e tipos de dados
Variáveis, constantes e tipos de dadosVariáveis, constantes e tipos de dados
Variáveis, constantes e tipos de dados
 
Programando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonProgramando para web com python - Introdução a Python
Programando para web com python - Introdução a Python
 
Sistema operacional introdução
Sistema operacional introduçãoSistema operacional introdução
Sistema operacional introdução
 
Linguagem C - Uniões
Linguagem C - UniõesLinguagem C - Uniões
Linguagem C - Uniões
 
Prova algoritmos
Prova algoritmosProva algoritmos
Prova algoritmos
 
Algoritmo - tipos de dados
Algoritmo - tipos de dadosAlgoritmo - tipos de dados
Algoritmo - tipos de dados
 
Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)
 
Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)
 
Material Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º BimestreMaterial Algoritmos e Estruturas de Dados - 1º Bimestre
Material Algoritmos e Estruturas de Dados - 1º Bimestre
 

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
 
Pro2 04p
Pro2 04pPro2 04p
Pro2 04p
 
CLP S7 300 E S7 400
CLP S7 300 E S7 400CLP S7 300 E S7 400
CLP S7 300 E S7 400
 
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
 
Como descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcaçãoComo descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcaçãoElaine 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
 
Como descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcaçãoComo descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcação
 
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 ...
 

Último

Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxLuizHenriquedeAlmeid6
 
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
activIDADES CUENTO  lobo esta  CUENTO CUARTO GRADOactivIDADES CUENTO  lobo esta  CUENTO CUARTO GRADO
activIDADES CUENTO lobo esta CUENTO CUARTO GRADOcarolinacespedes23
 
E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?Rosalina Simão Nunes
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasRosalina Simão Nunes
 
Lírica Camoniana- A mudança na lírica de Camões.pptx
Lírica Camoniana- A mudança na lírica de Camões.pptxLírica Camoniana- A mudança na lírica de Camões.pptx
Lírica Camoniana- A mudança na lírica de Camões.pptxfabiolalopesmartins1
 
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxAD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxkarinedarozabatista
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinhaMary Alvarenga
 
Regência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdfRegência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdfmirandadudu08
 
Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxleandropereira983288
 
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfBRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfHenrique Pontes
 
Prova uniasselvi tecnologias da Informação.pdf
Prova uniasselvi tecnologias da Informação.pdfProva uniasselvi tecnologias da Informação.pdf
Prova uniasselvi tecnologias da Informação.pdfArthurRomanof1
 
Slides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptxSlides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptxSilvana Silva
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxLuizHenriquedeAlmeid6
 
Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.keislayyovera123
 
Família de palavras.ppt com exemplos e exercícios interativos.
Família de palavras.ppt com exemplos e exercícios interativos.Família de palavras.ppt com exemplos e exercícios interativos.
Família de palavras.ppt com exemplos e exercícios interativos.Susana Stoffel
 
Sociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresSociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresaulasgege
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditaduraAdryan Luiz
 
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxApostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxIsabelaRafael2
 
Governo Provisório Era Vargas 1930-1934 Brasil
Governo Provisório Era Vargas 1930-1934 BrasilGoverno Provisório Era Vargas 1930-1934 Brasil
Governo Provisório Era Vargas 1930-1934 Brasillucasp132400
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOColégio Santa Teresinha
 

Último (20)

Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
 
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
activIDADES CUENTO  lobo esta  CUENTO CUARTO GRADOactivIDADES CUENTO  lobo esta  CUENTO CUARTO GRADO
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
 
E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
 
Lírica Camoniana- A mudança na lírica de Camões.pptx
Lírica Camoniana- A mudança na lírica de Camões.pptxLírica Camoniana- A mudança na lírica de Camões.pptx
Lírica Camoniana- A mudança na lírica de Camões.pptx
 
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxAD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinha
 
Regência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdfRegência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdf
 
Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptx
 
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfBRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
 
Prova uniasselvi tecnologias da Informação.pdf
Prova uniasselvi tecnologias da Informação.pdfProva uniasselvi tecnologias da Informação.pdf
Prova uniasselvi tecnologias da Informação.pdf
 
Slides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptxSlides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptx
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
 
Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.
 
Família de palavras.ppt com exemplos e exercícios interativos.
Família de palavras.ppt com exemplos e exercícios interativos.Família de palavras.ppt com exemplos e exercícios interativos.
Família de palavras.ppt com exemplos e exercícios interativos.
 
Sociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresSociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autores
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditadura
 
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxApostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
 
Governo Provisório Era Vargas 1930-1934 Brasil
Governo Provisório Era Vargas 1930-1934 BrasilGoverno Provisório Era Vargas 1930-1934 Brasil
Governo Provisório Era Vargas 1930-1934 Brasil
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
 

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