Buscar

Processamento e Linguagem de Máquina

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 7 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 7 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1
Processamento
Microprocessadores e capacidade de 
processamento
� Tecnologia de circuitos integrados
� Integra a memória, a lógica e o controle do 
computador em um único chip
Processamanto paralelo
� Problema é fragmentado em partes menores
� Múltiplas instruções são processadas
simultaneamente com vários processadores
Processamanto paralelo
Multiprocessadores Multicomputadores
2
Tipos
� Processamento em lote
� As transações são acumuladas e armazenadas
até o processamento
� Processamento on-line
� Transações são registradas diretamente no 
computador e processadas imediatamente
•• ProcessamentoProcessamento distribudistribuíídodo::
DistribuiDistribuiççãoão de de trabalhotrabalho de de processamentoprocessamento
entreentre vvááriosrios computadorescomputadores
•• ProcessamentoProcessamento centralizadocentralizado::
ReslizadoReslizado porpor umcomputadorumcomputador central de central de 
grandegrande porteporte
•• ComputaComputaççãoão cliente/servidorcliente/servidor:: Divide o Divide o 
processamentoprocessamento entreentre ““clientesclientes”” e e 
““servidoresservidores”” nana rederede
Tipos
Figura 6-7
Cliente - Servidor Cliente - Servidor
•• ComputadoresComputadores de de rederede (CR):(CR):
ComputadorComputador de mesa de mesa simplificadosimplificado, , nãonão
armazenaarmazena dados dados permanentementepermanentemente
•• ComputaComputaççãoão peerpeer--toto--peer:peer:
ProcessamentoProcessamento distribudistribuíídodo queque ligaliga
computadorescomputadores atravatravééss dada Internet Internet ouou de de 
redesredes privadasprivadas
Processamento em Rede Processamento em Rede
3
MultiprogramaMultiprogramaççãoão
•• ExecutaExecuta doisdois ouou maismais programasprogramas
simultaneamentesimultaneamente usandousando o o mesmomesmo
computadorcomputador
•• A CPU A CPU executaexecuta apenasapenas um um programaprograma masmas
atendeatende ààss necessidadesnecessidades de de entradaentrada e e 
sasaíídada de de outrosoutros
Execução de um único programa
versus multiprogramação
Tempo Tempo compartilhadocompartilhado
•• CompartilhamentoCompartilhamento de de recursosrecursos
computacionaiscomputacionais porpor muitosmuitos usuusuááriosrios
simultaneamentesimultaneamente
MultiprocessamentoMultiprocessamento
•• ExecuExecuççãoão de de duasduas ouou maismais instruinstruççõesões
simultaneamentesimultaneamente emem um um úúniconico sistemasistema, , 
usandousando maismais de de umauma CPUCPU
S.O.
ProgramasProgramas tradutorestradutores de de linguagemlinguagem e e 
utilitutilitááriosrios
•• TraduzTraduz programasprogramas emem linguagemlinguagem de alto de alto 
nníívelvel emem linguagemlinguagem de de mmááquinaquina
•• LinguagensLinguagens de de programaprogramaççãoão::
ConsisteConsiste dos 1s e 0s do dos 1s e 0s do ccóódigodigo binbinááriorio
•• LinguagemLinguagem Assembly:Assembly: LembraLembra a a 
linguagemlinguagem de de mmááquinaquina, , substituisubstitui recursosrecursos
mnemônicosmnemônicos porpor ccóódigosdigos numnumééricosricos
•• LiguagensLiguagens de de terceiraterceira gerageraççãoão::
FORTRAN, COBOL, BASIC, Pascal e CFORTRAN, COBOL, BASIC, Pascal e C
Linguagens de programação Instruções
� Para comandar o hardware de um computador, 
precisamos falar a linguagem dele.
� As palavras da linguagem da máquina são 
chamadas de instruções.
� O conjunto de instruções formam um 
vocabulário.
� Normalmente representados por um código
assembly
4
Linguagem de máquina
� Os projetistas de máquina buscam:
� Um conjunto de instruções que facilite a 
construção do hardware e do compilador.
� Maximizar a performance
� Minimizar o custo
� Após aprender a linguagem de uma máquina 
torna-se fácil aprender outras mais.
� Mesmos princípios
� Instruções MIPS: Nintendo, sony...
Linguagem de máquina
� Linguagem assemby é essencialmente suportada 
diretamente em hardware.
� Simplicidade -> regularidade
� Limite nos tipos de operandos (registradores)
� Limite no conjunto de operações
Elementos de uma instrução
� Código da operação (codop)
� Faça isto
� Endereço do operando fonte
� Use isto
� Endereço do operando resultado
� Coloque o resultado aqui
Operações aritméticas
� MIPS: add a,b,c # a = b + c
� Obs. Os nomes dos operandos não são a, b e c
� Instruções são mais rígidas que em linguagem de 
alto nível
� MIPS: 3 operandos
� Exemplo: a = b + c + d + e
add a, b, c # a = b + c
add a, a, d # a = a + d
add a, a, e #a = a + e
Variáveis Assembly : Registradores
� Assembly não utiliza variáveis
� Operandos Assembly são registradores
� Número limitado de localizações especiais 
construídas diretamente no hardware
� Operações podem somente ser realizadas 
nestes
� Como os registradores estão diretamente no 
hardware eles são muito rápidos.
� Exemplo:
� MIPS: 32 registradores de 32 bits
� Cada registrador tem um nome
� Os nomes começam com $
� $s0, $s1, $s2... ,$s7-> correspondem às 
variáveis de programa
� $t0, $t1, $t2...,$t9 -> registradores 
temporários
� Zero: $zero
Variáveis Assembly : Registradores
5
Adição e Subtração
� Sintaxe das instruções:
� Nome da operação (add, sub)
� Operando destino
� Primeiro operando fonte
� Segundo operando fonte
add $t0, $s1, $s2
Adição e subtração
� Exemplo:
f = (g + h) – (i + j);
add $t0, $s1, $s2
add $t1, $s3, $s4
sub $s0, $t0, $t1
f
g
h
i
j
$s0
$s1
$s2
$s3
$s4
Adição e subtração
� Exemplo:
a = b + c + d – e;
add $s0, $s1, $s2
add $s0, $s0, $s3
sub $s0, $s0, $s4
a
b
c
d
e
$s0
$s1
$s2
$s3
$s4
Instruções Lógicas
� Operações AND e OR;
� Sintaxe semelhante às operações aritméticas;
� Exemplos:
� and $t0,$s0,$s1
� or $t0,$s0,$s1
Operandos Imediatos
� Imediatos são costantes numéricos.
� São comuns em códigos, logo existem 
instruções especiais para eles.
� Somar imediato:
addi $t0, $t1, 10 # $t0 = $t1 + 10
Imediato
Transferência de dados
� Transferem dados entre registradores e memória
� Memória para registrador
� Registrador para memória
6
Memória para registrador
� Sintaxe da instrução de carga (load)
� Nome da operação (instrução) 
� Registrador que receberá o valor
� Deslocamento numérico em bytes
� No MIPS deslocamento possui 16 bits, podendo ser 
positivo ou negativo.
� Registrador contendo um ponteiro para a memória.
� Nome da instrução: lw (load word)
� 32 bits são transferidos de uma vez
Registrador para memória
� Também queremos armazenar o valor de um 
registrador na memória.
� Nome da instrução sw (store word);
� Sintaxe idêntica a instrução load;
sw $t0,12($s0)
� Essa instrução tomará o ponteiro em $s0, 
somará 12 bytes a ele, e então armazenará o 
valor do registrador $t0 no endereço de 
memória apontado pela soma calculada
Instruções de desvio
� O MIPS possui duas instruções de desvio condicional
� beq (branch if equal) – desvie se igual
� bne (branch if not equal) – desvie se não igual
� Sintaxe:
beq registrador1, registrador2, L1
� Se conteúdo de registrador1 igual ao conteúdo de 
registrador2, desvie para o label L1
bne registrador1, registrador2, L1
� Se conteúdo de registrador1 diferente do conteúdo de 
registrador2, desvie para o label L1
Instruções de desvio
� A instrução de desvio no MIPS é a jump (pule, ou 
desvie para)
� sintaxe:
� j L1 # desvie para o label L1
� Essa instrução é equivalente ao goto
Instruções de desvio
if (a == 0)
a = a+1;
else
a = a-1;
� Exemplo:
Desvios condicionais
� Vamos executar o nosso trecho de código na 
linguagem do MIPS:
� a : $s0 
beq $s0,$zero,L1 # se a = 0 vai para L1
subi $s0,$s0,1 # faz a = a -1
j L2 # vai para L2
L1: addi $s0,$s0,1# faz a = a+1
L2: 
if (a == 0)
a = a+1;
else
a = a-1;
7
Laços
� Como faríamos para executar o seguinte código:
� Reescrevendo:
LOOP: a = a + 1;
if(a != 10)
goto LOOP;
do{
a = a + 1;
}while (a != 10);
Laços
� Em linguagem de máquina teríamos:
a: $s0 , 10 : $s1
LOOP: addi $s0,$s0,1
bne $s0,$s1,LOOP
do{
a = a + 1;
}while (a != 10);
Exercício
� Traduza os seguintes trechos de código para o 
assembly do Mips:
a) b = 0;
do{
b = b + 5;
}while(b != 50);
b) if (b == 10)
b = b - 1;
else
b = b*2;

Outros materiais