Você está na página 1de 27

Arquitetura de

Computadores
Prof. Rodrigo Monteiro de Aquino
Arquitetura de Computadores
Linguagem do computador

● Dígito binário (bit)


○ Representação numérica em base 2 (0 ou 1)
Arquitetura de Computadores
Linguagem do computador

● Representação numérica em base 2

De maneira geral, a representação de um dígito em qualquer base pode ser expressa como:

d x Basei
Exemplo:

25dec = 2x101 + 5x100

1011bin = 1x23 + 0x22 + 1x21 + 1x20 = 11dec


Arquitetura de Computadores
Linguagem do computador

● Na arquitetura MIPS, que veremos nesta disciplina, teremos a representação de valores em


32 bits:

Dígito mais significativo Dígito menos significativo


Arquitetura de Computadores
Linguagem do computador

● Como temos 32 posições nesta representação:


○ Total de combinações possíveis: 232 números diferentes
○ Em decimal: de 0 a 232 - 1 (4.294.967.295dec)
Arquitetura de Computadores
Linguagem do computador

● Problemas:
○ Representação de todos os números possíveis?
■ Overflow
Arquitetura de Computadores
Linguagem do computador

● Problemas:
○ Como representar números negativos?
■ Representação por complemento de 2
Arquitetura de Computadores
Linguagem do computador

● Conversão da representação binária em complemento de 2 para decimal:

(𝑥31 ✕ -231) + (𝑥31 ✕ 230) +(𝑥31 ✕ 229) + … + (𝑥31 ✕ 21) + (𝑥31 ✕ 20)

Bit de sinal
Arquitetura de Computadores
Linguagem do computador

● Conversão da representação binária em complemento de 2 para decimal:

Exemplo:

1111 1111 1111 1111 1111 1111 1111 1100bin= 1x (-231) + 1x230 + … + 1x23 + 1x22 + 0x21 + 0x20

= -2.147.483.648dec + 2.147.483.644dec

= -4dec
Arquitetura de Computadores
Linguagem do computador

● Operações

Negação na representação em complemento de dois: (regra geral: x + ẍ = –1)

Inverter os dígitos 0 para 1 e os dígitos 1 para 0 e somar 1


Arquitetura de Computadores
Linguagem do computador

● Operações

Conversão de número em n bit para representação com mais n bits

Extensão de sinal: Replicar o bit de sinal para os números mais a esquerda (mais significativos)
e copiar os dígitos restantes:
Arquitetura de Computadores
Linguagem do computador

Representação hexadecimal

● Conversão dos “blocos” de 4 bits para dígitos hexadecimal


Arquitetura de Computadores
Linguagem do computador

Representação hexadecimal

● Temos 16 símbolos neste sistema

Tabela de conversão de hexadecimal para binário


Arquitetura de Computadores
Linguagem do computador

Representação hexadecimal
Arquitetura de Computadores
Linguagem do computador

Conceitos

● Programa armazenado
Arquitetura de Computadores
Linguagem do computador

Conceitos

● Programa armazenado
● Palavra (word) de 32 bits (4 bytes)

1 byte: 8 bits
Arquitetura de Computadores
Linguagem do computador

Conceitos

● Programa armazenado
● Palavra (word) de 32 bits (4 bytes)
● Endereçamento em múltiplos de 4
Arquitetura de Computadores
Linguagem do computador

A arquitetura MIPS

● Registradores
○ Locais embutidos diretamente no hardware, que armazenam valores para que o
processador realize cálculos
○ Operações não podem ser realizadas diretamente na memória

32 Registradores

$s0-$s7, $t0-$t9, $zero, $a0-$a3, $v0-$v1, $gp, $fp, $sp, $ra, $at

230 palavras na memória


Arquitetura de Computadores
Linguagem do computador

Operações aritméticas

● Soma
○ add $s1, $s2, $s3
■ “Somar os valores armazenados nos registradores $s2 e $s3 e
armazene o resultado no registrador $s1”
● Subtração
○ sub $s1, $s2, $s3
■ “Subtrair o valor armazenado no registradores $s3 do valor
armazenado em $s3 e armazene o resultado no registrador $s1”
Arquitetura de Computadores
Linguagem do computador

Operações aritméticas

● Soma imediata
○ addi $s1, $s2, 20
■ “Somar o valor 20 ao valor armazenado no registrador $s2 e
armazene o resultado no registrador $s1”
Arquitetura de Computadores
Linguagem do computador

Operações aritméticas

● Conversão de operações mais complexas


○ Utilizando o conceito de “variáveis” em uma linguagem de alto nível:
■ f = (g+h) - (i+j)
○ Em instruções assembly do MIPS:
■ add t0, g, h # t0: variável temporária
■ add t1, i, j # t1: variável temporária
■ sub f, t0, t1 # f: variável de resultado da operação
Arquitetura de Computadores
Linguagem do computador

Instruções de transferência de dados

● Load word
○ lw $s1, 32($s2)
■ “Utilizando o valor armazenado no registrador $s2 como base,
armazene o valor da posição 8 do vetor no registrador $s1”

Por quê??
Arquitetura de Computadores
Linguagem do computador

Instruções de transferência de dados

● Load word
○ lw $s1, 32($s2)
■ “Utilizando o valor armazenado no registrador $s2 como base,
armazene o valor da posição 8 do vetor no registrador $s1”

● Endereçamento
Por quê?? em bytes
Arquitetura de Computadores
Linguagem do computador

Instruções de transferência de dados

● Load word
○ lw $s1, 32($s2)
■ “Utilizando o valor armazenado no registrador $s2 como base,
armazene o valor da posição 8 do vetor no registrador $s1”

● Palavras de 4
Por quê?? bytes
Arquitetura de Computadores 32

28
Linguagem do computador
24

Instruções de transferência de dados 20

● Load word 16
○ lw $s1, 32($s2)
■ “Utilizando o valor armazenado no registrador $s2 como base,
armazene o valor da posição 8 do vetor no registrador $s1”

● Palavras de 4
Por quê?? bytes
Arquitetura de Computadores 32

28
Linguagem do computador
24

Instruções de transferência de dados 20

● Store word 16
○ sw $s1, 32($s2)
■ “Armazene o valor armazenado no registrador $s1 na posição 8
do vetor utilizando o valor armazenado no registrador $s2 como
base”
Fim!

Prof. Rodrigo Monteiro de Aquino


rodrigo.aquino@eseg.edu.br

Você também pode gostar