Sei sulla pagina 1di 16

MI NI STRI O DA EDUCAO

UNI VERSI DADE ABERTA DO BRASI L UAB


INSTITUTO FEDERAL DE EDUCAO, CINCIA E TECNOLOGIA DE MATO GROSSO IF - MT
DIRETORIA DE ENSINO






CURSO SUPERIOR DE TECNOLOGIA EM SISTEMAS PARA
INTERNET

MODALIDADE A DISTNCIA - TSIAD




DISCIPLINA: Algoritmos




Professor Autor:
Evandro Csar Freiberger
Joo Paulo Delgado Preti


2009/1
Algoritmos
2







Unidade II Representao da Informao
no Computador




APRESENTAO 3
2. REPRESENTAO DA INFORMAO NO COMPUTADOR 3
2.1 REPRESENTAO DE VALORES NUMRICOS 3
2.1.1 BASE HEXADECIMAL 5
2.2 TABELA DE CONVERSO 7
2.2.1 AGRUPAMENTOS DE BITS CONHECIDOS 7
2.3 REPRESENTAO DE CARACTERES 7
2.4 REPRESENTAO DE VALORES LGICOS 8
2.5 REPRESENTAO DE CORES 8
2.6 REPRESENTAES NUMRICAS COM SINAL 8
2.6.1 VALORES INTEIROS COM SINAL 9
2.6.2 VALORES NO INTEIROS 10
2.6.3 INSTRUES DE MQUINA 11
BIBLIOGRAFIA 16






Algoritmos
3
APRESENTAO
Utilizaremos os cones abaixo para que voc facilmente localize aspectos
importantes do contedo:

Utilizado para apresentar uma definio.

Utilizado para apresentar uma dvida pertinente ao contexto.

Utilizado para indicar um aviso.

Utilizado para indicar um ponto crtico ou problema a ser
considerado.

Utilizado para indicar uma referncia na Internet.
2. Representao da Informao no Computador
Como foi apresentado anteriormente, os computadores digitais usam a base binria
na representao e processamento de todas as informaes manipuladas.
Entender a base binria nos ajudar entender como funcionam as principais tarefas
de um computador.
2.1 Representao de Valores Numricos
Nessa seo iremos entender como so representadas as informaes no
computador digital. Iniciaremos com a representao de valores numricos (valores
inteiros sem sinal, valores inteiros com sinal e valores no inteiros), depois vamos
conhecer outras representaes, tais como: caracteres, cores e instrues de mquina.
Para facilitar a compreenso da base binria primeiro faremos uma reviso na
base numrica decimal, a base usada no nosso cotidiano para representao de
nmeros. formada por 10 dgitos: 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9. Por ser a base do nosso dia
a dia, a maioria de ns nos esquecemos de como os valores so obtidos a partir de um
conjunto de dgitos decimais, por exemplo, porque a juno dos dgitos 1 com 0 com
0 formam o valor 100 (cem). Vejamos:
100 = 100 = 1 x 10 + 0 x 10 + 0 x 10
Assim temos: 100 + 0 + 0 = 100
Obs: os ndices iniciam em zero na extremidade direita e crescem para a
extremidade esquerda; o valor dez decorrente da base decimal.
123 = 123 = 1 x 10 + 2 x 10 + 3 x 10
Assim temos: 100 + 20 + 3 = 123
1235 = 1235 = 1 x 10 + 2 x 10 + 3 x 10 + 5 x 10
Assim temos: 1000 + 200 + 30 + 5 = 1235
Agora vamos entender como funciona a base binria que formada por apenas
dois dgitos: 0 e 1, com esses dois dgitos so representadas todas as informaes que
so manipuladas pelo computador. Para facilitar ns iremos analisar a representao de
Algoritmos
4
nmeros inteiros positivos primeiramente. Analogamente base decimal, os valores so
obtidos de uma cadeia de zeros e uns binrios. Veja exemplos:
A cadeia 10 (l-se: um zero e no dez, lembre-se!), qual ser o valor
numrico (base decimal) representado pela seqncia binria?
10 = 10 = 1 x 2 + 0 x 2 = 1 x 2 + 0 x 1
= 2 na base decimal
A cadeia 11 (l-se um um e no onze).
11 = 11 = 1 x 2 +1 x 2 = 1 x 2 + 1 x 1
= 3 na base decimal
A cadeia 1000 (l-se um zero zero zero e no mil).
1000 = 1000 = 1 x 2 + 0 x 2 + 0 x 2 + 0 x 2
= 1 x 8 + 0 x 4 + 0 x 2 + 0 x 1
= 8 na base decimal
A cadeia 1000 (l-se um zero zero um e no mil e um).
1001 = 1 0 2 1 = 1 X 2 + 0 X 2 + 0 X 2 + 1 X 2 = 1 x 8 + 0 x 4 + 0 x 2 + 1 x 1
= 9 na base decimal
Nos exemplos acima estvamos preocupados em obter um valor decimal (base
cotidiana) a partir de uma seqncia de dgitos binrios. Agora vamos obter dgitos
binrios a partir de um valor decimal. Para isso vamos usar a operao de diviso,
dividiremos o valor decimal por dois (base binria) varias vezes at obtermos a seqncia
completa. Uma observao importante que usaremos a diviso inteira e no a diviso
fracionada. Por exemplo:
5 / 2 = 2,5 na diviso fracionada
5 / 2 = 2 com resto 1 na diviso inteira
Resultado = 101 (l-se um zero um)
Vamos entender o que foi feito. A primeira diviso, dividiu o valor 5 por 2 (diviso
inteira), o resultado foi 2 e resto 1. A segunda diviso tomou o resultado da primeira, no
caso 2 e dividiu por 2, o resultado foi 1 e resto 0. A terceira diviso, tomou o resultado da
segunda, no caso 1 e dividiu por 2, o resultado foi 0, visto que no possvel realizar essa
diviso inteira, ento o resultado 0 e resto 1. Por ultimo pega-se os restos das divises
no sentido do ultimo resto para o primeiro e essa a seqncia binria que representa o
valor 5 decimal.
Vamos a outro exemplo.
Assim a seqncia binria que representa o valor inteiro 13
1101. Vamos verificar se o resultado est correto? Para isso temos que
fazer a operao inversa, ou seja, transformar a seqncia binria em
Algoritmos
5
um nmero decimal, se obtivermos o valor 13 a nossa seqncia est correta.
1101 = 1101 = 1 x 2 + 1 x 2 + 0 x 2 + 1 x 2 = 1 x 8 + 1 x 4 + 0 x 2 + 1 x 1
= 8 + 4 + 0 + 1 = 13
2.1.1 Base Hexadecimal
Outra base numrica muito usada na computao a base hexadecimal. Essa
base foi desenvolvida para que grandes cadeias de binrios pudessem ser visualizadas
de forma mais amigvel. O computador manipula muito bem o binrio, contudo o ser
humano tem muita dificuldade, principalmente quando as cadeias de binrios tornam
extensas. Outra caracterstica dos valores na base hexadecimal que so facilmente
convertidos para binrios ou vice-versa, no necessitando fazer converses para a base
decimal. Vamos conhecer as caractersticas dessa base numrica.
Possui 16 smbolos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E e F, onde:
A = 10
B = 11
C = 12
D = 13
E = 14
F = 15, todos em valores decimal
Dgitos Normais + 6 letras do alfabeto.
As regras de converso para a base decimal so as mesmas da base binria, o
que muda a base, veja exemplo abaixo:
O valor 453 na base hexadecimal representa que valor decimal?
453 = 453 = 4 x 16 + 5 x 16 + 3 x 16 = 4 x 256 + 5 x 16 + 3 x 1 = 1024 + 80
+ 3 = 1107 na base decimal
Agora vamos obter a representao hexadecimal de um valor expresso em base
decimal, ou seja, vamos converter um valor decimal para um valor hexadecimal.
170 / 16 = 10 resta 10
10 / 16 = 0 resta 10
Assim os restos so 10 e 10, como o valor 10 representado pela letra A o smbolo
hexadecimal que representa o valor decimal 170 AA.
Outro exemplo:
180 / 16 = 11 e resto 4
11 / 16 = 0 e resto 11


Os restos obtidos na ordem inversa de calculo foram 11 e 4, como o valor 11
representado pela letra B, o resultado da converso B4.
Algoritmos
6
Anteriormente apresentamos a base hexadecimal como uma base opcional em
visualizaes e grandes cadeias de binrios, assim muitas interfaces de dispositivos
eletrnicos, ao invs de serem configurados e/ou manipulados diretamente em binrios,
so manipulados em hexadecimal. Contudo os dispositivos continuam entendendo
binrios, o que vai existir um conversor de hexadecimal para binrio e um conversor de
binrio para hexadecimal. Vamos analisar o exemplo a seguir.
Se tivermos uma cadeia hexadecimal e desejarmos convert-la para binrios, a
maneira mais natural de fazermos isso converter o hexadecimal para decimal e depois o
decimal para binrio. Veja exemplo:
O valor AA em hexadecimal equivale 170 em decimal e a 10101010 em binrio.
Contudo foi desenvolvida uma tcnica de converso de hexadecimal para binrio de
forma direta, sem passar pelo decimal. Isso facilita a construo de dispositivos que
embora funcionem em binrios, possam ser manipulados atravs de hexadecimais.
Acompanhe o seguinte raciocnio:
1 smbolo hexadecimal representa 16 valores decimais
4 smbolos binrios representam 16 valores decimal 2
4

1 smbolo hexadecimal substitui 4 dgitos binrios
Assim, agrupamos os binrios em grupos de quatro da direita para a esquerda,
depois calculamos o valor de cada grupo separadamente e substitumos esse valor pelo
smbolo hexadecimal correspondente.

Outro exemplo:

Foram inseridos dois zeros esquerda do ltimo grupo de binrios para formar um
grupo de quatro, embora isso no afete o valor.
3EB = 3 x 16
2
+ E x 16
1
+ B x 16
0
=> 768 + 224 + 11 = 1003
1111101011= 1 x 2
9
+ 1 x 2
8
+ 1 x 2
7
+ 1 x 2
6
+ 1 x 2
5
+ 0 x 2
4
+ 1 x 2
3
+ 0 x 2
2
+
1 x 2
1
+ 1 x 2
0

= 512 + 256 + 128 + 64 + 32 + 0 + 8 + 0 + 2 + 1 = 1003
A converso de hexadecimal para binrio bastante simples, cada smbolo
hexadecimal produz um grupo de quatro binrios que representam um valor entre 0 e 15.
O valor B4 em hexadecimal equivale a 10110100 em binrio, veja:

Algoritmos
7
1x2
7
+0x2
6
+1x2
5
+1x2
4
+0x2
3
+1x2
2
+0x2
1
+0x2
0
=> 128 + 0 + 32 + 16 + 0 + 4 + 0
+ 0 = 180
Com da tabela de converso abaixo possvel converter qualquer valor
hexadecimal para binrios ou vice-versa, sem fazer clculos e tambm com baixa
probabilidade de erros.
2.2 Tabela de converso
Decimal Hexadecimal Binrio
00 0 0000
01 1 0001
02 2 0010
03 3 0011
04 4 0100
05 5 0101
06 6 0110
07 7 0111
08 8 1000
09 9 1001
10 A 1010
11 B 1011
12 C 1100
13 D 1101
14 E 1110
15 F 1111
2.2.1 Agrupamentos de bits conhecidos
Um dgito binrio chamado de bits representa dois valores 2
4 bits => nibble representa 16 valores 2
4

8 bits => byte representa 256 valores 2
8

1024 bytes => Um Kilobyte => 1KB = 2
10
= 1024 bytes
1024 Kilobytes => Um Megabyte => 1MB = 2
20
= 1.048.576 bytes
1024 Megabytes => Um Gigabyte => 1GB = 2
30
= 1.073.741.824 bytes
1024 Gigabytes => Um Terabyte => 1TB = 2
40
= 1.099.511.627.776 bytes
At agora usamos os bits para representarem nmeros inteiros sem sinal, contudo
os computadores usam os bits para representar todas as informaes que ele manipula.
O que se pode representar com N bits?
2
N
coisas.
Quais coisas?
Nmeros! Caracteres! Pixeis! Valores Monetrios! Posies! Instrues! ...
Bits podem representar qualquer coisa!
2.3 Representao de Caracteres
Um dos padres mais conhecidos de representao de caracteres o ASCII
American Standard Code for Information Interchange. Esse padro usa um byte para
representar cada caractere e tem a possibilidade de representar 256 caracteres, visto que
um byte permite 256 combinao de valores ( 0 a 255).
Exemplos de codificaes da tabela ASCII:
Algoritmos
8
Caractere Dec. Hex. Binrio
Espao 32 20 0010 0000
! 33 21 0010 0001
" 34 22 0010 0010
# 35 23 0010 0011
... ... ... ...
0 48 30 0011 0000
1 49 31 0011 0001
2 50 32 0011 0010
3 51 33 0011 0011
... ... ... ...
A 65 41 0100 0001
B 66 42 0100 0010
C 67 43 0100 0011
... ... ... ...
a 97 61 0110 0001
b 98 62 0110 0010
c 99 63 0110 0011
... ... ... ...
Outra codificao para caracteres o padro Unicode, que usa dois bytes para
representar cada caractere, isso possibilita 65536 smbolos.
2.4 Representao de Valores Lgicos
Os valores lgicos sero muito usados nessa disciplina de algoritmo, eles
representam dois valores: verdadeiro e falso. Esses valores poderiam ser representados
apenas por um bit, contudo os computadores possuem uma quantidade mnima de
combinao de bits, chamada de palavra. A palavra de um computador a quantidade
padro de bits que so envolvidas nas operaes de processamento. Os computadores
usam no mnimo uma palavra ou uma combinao de vrias palavras para representarem
as informaes envolvidas em suas operaes. Assim os valores lgicos, apesar de
poderem ser representados apenas com um bit, normalmente so representados com um
byte, que o tamanho padro de palavra para a maioria dos computadores.
2.5 Representao de Cores
Assim como os caracteres, as cores podem ser representadas por vrios padres.
Um dos mais conhecidos o padro RGB (Red, Green, Blue), que usa trs bytes para
representar as cores primrias (Vermelho, Verde e Azul). Cada byte pode variar entre 0 a
255, assim a combinao desses trs bytes produzem uma mistura de cores primrias e
resultam em cores derivadas. Normalmente os valores RGBs so visualizados em
interfaces de software atravs de valores em hexadecimais. Por exemplo: A45B3E, assim
a intensidade da cor vermelho A4, da cor verde 5B e da cor azul 3E. Outro exemplo:
se definirmos 00 para as trs cores, ento teremos o preto, por outro lado, se definirmos
FF (255) para as trs cores teremos o branco.
2.6 Representaes numricas com sinal
Algoritmos
9
A representao numrica binria conhecida at agora no atende todas as
necessidades de representao de nmeros. Alm dos nmeros naturais, precisamos
representar valores inteiros com sinal e valores no inteiros. Existem vrios mtodos de
representao numrica, vamos ver alguns deles para que possamos entender de forma
geral, como os nmeros so representados.
2.6.1 Valores Inteiros com Sinal
Um dos mtodos mais usados para representao de nmeros inteiros com sinal
o complemento de dois. Nesse mtodo o bit mais significativo sinaliza o sinal, se for zero
o nmero positivo, se for um o nmero negativo. importante termos em mente que
em funo da representao de valores positivos e negativos, a faixa de valores de uma
palavra muda. Veja o exemplo de uma palavra de oito bits, naturalmente ela representaria
256 valores possveis, se usarmos o valor numrico seria possvel representar os valores
de 0 a 255. Quando precisamos representar valores negativos, esse mesmo byte
representar valores entre -128 a 0 e de 0 a 127. Assim, para uma quantidade de N bits,
teremos a possibilidade de expressar valores entre: -2
(n-1)
e 2
(n-1)
-1.
Vamos aos passos do mtodo:
Inverta cada bit da cadeia de bits desejada, isso significa que onde tem zero
fica um e onde tem um fica zero;
Some um ao resultado obtido no passo anterior;
Veja exemplo:
O valor 10 expresso em um padro binrio de 8 bits: 00001010
Valor positivo 00001010
Inverso 11110101
Soma Um 00000001
Resultado 11110110
Assim, o valor -10 decimal expresso em binrio usando o mtodo de complemento
de dois : 11110110.
Outra maneira de usar o mtodo complemento de dois executar o seguinte
procedimento:
Tome o padro binrio do nmero positivo;
A partir do bit menos significativo para o mais significativo (da direita para a
esquerda) copie os bits at encontrar o primeiro bit 1, inclusive ele. Depois
para os demais inverta todos os bits que restarem a esquerda.

Valor original 00001010
Cpia / Inverso 11110110
Resultado 11110110
Vamos encontrar o valor negativo do nmero 79:
Algoritmos
10
Valorpositivo 01001111
Cpia / Inverso 10110001
Resultado 10110001
Agora, vamos fazer o inverso, dado um valor negativo, vamos obter o valor
positivo. Funciona da mesma maneira, copiamos os bits da direita para a esquerda at
encontrar o bit um, inclusive ele, os demais sero invertidos.
Valor negativo 10110001
Cpia / Inverso 01001111
Resultado 01001111
2.6.2 Valores No Inteiros
Uma das notaes mais utilizada para representao de nmeros no inteiros a
de Ponto Flutuante, que divide cadeia de bits em trs termos:
Sinal Expoente Mantissa
O sinal representado por um bit, se zero o nmero positivo, se um o nmero
negativo. O expoente estabelece a posio do ponto decimal binrio e a mantissa
representa o valor a ser representado. Vamos analisar um exemplo, para facilitar
usaremos um byte apenas para representar nmeros no inteiros, na prtica os
computadores usam grande cadeia de bits.
Tomemos a seguinte cadeia de bits: 00101010
Sinal Expoente Mantissa
0 010 1010
Nesse exemplo estamos adotando trs bits para o expoente e quatro para a
mantissa, contudo isso definido em cada arquitetura de computador. Outro detalhe
importante que o expoente deve ser um valor inteiro com sinal, ento tambm deve ser
definido o mtodo de representao de inteiros com sinal, ns usaremos o mtodo
complemento de dois, visto que j conhecemos. Vamos analisar os dados do exemplo:
Sinal 0 significa que o nmero que est representado positivo. O expoente 010
resulta em um valor 2 positivo, isso significa que devemos deslocar o ponto decimal duas
casas a direita da mantissa, se fosse negativo o deslocamento do ponto seria a esquerda.
Vamos agora aplicar essas informaes na mantissa.
Obtenha a mantissa: 1010
Coloque o ponto decimal binrio a esquerda da mantissa
.1010
Desloque o ponto decimal segundo o expoente analisado, no nosso caso
deslocaremos o ponto duas casas a direita, ento vamos obter:
10.10
Agora vamos obter o valor decimal, para isso temos que considerar o
seguinte aspecto:
Algoritmos
11
7 6 5 4 3 2 1 0 1 2 3 4 5 6 7
2
7
2
6
2
5
2
4
2
3
2
2
2
1
2
0
2
-1
2
-2
2
-3
2
-4
2
-5
2
-6
2
-7

128 64 32 16 8 4 2 1 1/2 1/4 1/8 1/16 1/32 1/64 1/128
Assim se tivermos o padro: 10.10, vamos obter o valor decimal da seguinte
maneira:
128 64 32 16 8 4 2 1 1/2 1/4 1/8 1/16 1/32 1/64 1/128
1 0 1 0
2 + 0 + +
2 +
2,75
Na verdade continuamos a fazer a converso de binrio para decimal da mesma
maneira que fizemos at agora, porm estamos considerando a parte menor que zero nos
expoentes, veja resoluo abaixo:
1 x 21 + 0 x 20 + 1 x 2
-1
+ 0 x 2
-2
= 2 + 0 + + = 2,75
Se o padro de bits fosse 10101010, faramos o mesmo clculo, porm no final
acrescentaramos o sinal negativo ao resultado que seria: -2,75.
2.6.3 Instrues de Mquina
At agora ns vimos como as informaes so representadas em um computador,
mas ser como elas so processadas? Como ns falamos para o computador o que ele
deve fazer? Ser que necessrio dizer ao computador o que fazer?
No pretendo responder essas questes, mas sim conduzir voc a um raciocnio
que o leve a respond-las. Vejamos, no incio dessa unidade iniciamos o texto dizendo
que o grande diferencial dos computadores a sua capacidade de serem programados e
de sua extrema flexibilidade em resolver as mais diferentes tarefas. Vocs esto
lembrados da idia de Jacquard (tear configurado com cartes perfurados) e
posteriormente o projeto de Babbage (o projeto da calculadora genrica)? Ento o grande
desafio e inspirao desses projetos foi o de produzir mquinas genricas, que no
precisavam ser reconstrudas para cada nova aplicabilidade desejada. Dessa mesma
maneira os computadores eletrnicos foram projetados. O modelo de arquitetura
formalizado por Von Newman tinha como princpio uma unidade de processamento, uma
unidade de controle, uma unidade de armazenamento e dispositivos de entrada e sada,
basicamente a mesma concepo de Babbage. Veja ilustrao a seguir:
Algoritmos
12

Figura 1.Representao de uma mquina computacional
A Unidade Central de Processamento (CPU) responsvel pelo processamento e
controle das atividades que ocorrem no computador. divida em duas subunidades: a
Unidade de Controle (UC) e a Unidade Lgica e Aritmtica (ULA). A UC responsvel
pelo controle das tarefas que ocorrem na CPU e a ULA onde ocorrem os clculos e
comparaes de dados em processamento. Para que um programa possa ser executado
no computador, este deve ser
carregado para uma regio de
armazenamento onde a UC
possa buscar as instrues que
devem ser executadas, essa
regio de armazenamento
denominada de Memria
Principal (MP), que usa a
tecnologia RAM (Memria de Acesso Aleatrio). Alm das instrues de um programa, os
dados que so manipulados por esse programa, tambm ficam armazenados na MP. A
ilustrao a seguir, apesar de ser extremamente simplista, visto que na realidade as
CPUs atuais possuem inmeros elementos que foram desconsiderados nessa figura,
detalha um pouco melhor os elementos que compem uma CPU.
A ilustrao anterior mostra que existem elementos tais como: CI (contador de
instrues), RI (registrador de instrues) e R0 ... RN (registradores de uso geral). Os
registradores de uma CPU so acumuladores de valores (alguns gerais outros
especficos) que so usados durante a execuo de um programa.
Cada processador projetado e fabricado para reconhecer um conjunto de
instrues (comandos). A esse conjunto de instrues dado o nome de Linguagem de
Mquina, j que particular para cada modelo de processador. Uma instruo de
mquina formada por um cdigo, que a identifica, e os operandos da instruo.
Osoperandos so informaes adicionais que cada instruo necessita para sua
execuo.
Veja a seguir a estrutura genrica de uma instruo de mquina.

Figura 2.Representao da Unidade Central de Processamento
Algoritmos
13
Cdigo Operando 1 Operando 2 Operando 3
Como todas as informaes que um computador reconhece so representadas
com smbolos binrios, as instrues de mquina tambm so. Os cdigos das instrues
so valores inteiros sem sinal, os operandos podem ser caracteres, valores inteiros,
valores no inteiros, etc. Veja a seguir um exemplo de uma instruo de mquina.
Cdigo Operando1 Operando2 Operando3
Decimal 1 1 2 3
Binrio 00000001 00000001 00000010 00000011

Para entendermos o significado de uma instruo de mquina, precisamos saber
previamente alguns conceitos. O primeiro o de programa armazenado, que diz respeito
s instrues de mquina que so armazenados em um arquivo, que recebe o nome de
cdigo executvel. Quando queremos executar um programa em um computador alguns
passos devem acontecer. No vamos nesse momento levar em considerao todos os
aspectos da execuo de um programa, e sim um conjunto mnimo que nos far entender
o significado de instrues de mquina. Vamos abstrair, por exemplo, as etapas
realizadas pelo Sistema Operacional, que so importantes, mas nesse momento
aumentaria a complexidade do nosso entendimento. Vamos aos passos de execuo de
um programa:
1. Carregar o programa para a memria principal;
2. Iniciar o registrador CI com o endereo de memria da primeira instruo
do programa;
3. Repetir os passos seguintes at encontrar o fim do programa ou ocorrer
um erro:
a. Carregar a instruo de mquina (copiar) apontada pelo CI para o
RI;
b. Incrementar o CI para apontar para o prximo endereo da
memria (prxima instruo);
c. Decodificar (interpretar) a instruo que est no RI;
d. Delegar a execuo da instruo para a parte correspondente da
ULA;
Os sub-passos do passo 3, so denominados de ciclo de mquina, pois so
repetidos para cada instruo. O ciclo de mquina formado por trs etapas: busca,
decodificao e execuo. Vamos conhec-los em maiores detalhes:
A busca de instruo compreendida dos seguintes passos:
A unidade de controle, atravs do registrador CI, requer da MP, a prxima
instruo;
Algoritmos
14
Quando a MP disponibiliza a instruo, essa armazenada no registrador
RI;
Por ltimo incrementado o CI, para indicar a prxima instruo;
A decodificao de instruo dividida em dois passos:
A UC identifica a instruo pelo campo cdigo;
A UC invoca os circuitos da ULA, passando os operandos;
A execuo da instruo executada pela ULA atravs dos passos:
Execuo da instruo com os operandos (valores) recebidos da UC;
Vamos agora adotar um conjunto de instrues de mquina (hipottico) como
sendo uma linguagem de mquina, veja tabela a seguir:
CdigoDec. CdigoBin. Operandos Interpretao
1 00000001 R1 R2 R3 R1= R2 + R3
2 00000010 R1 R2 Valor R1= R2 + Valor
3 00000011 R1 R2 R3 R1= R2R3
4 00000100 R1 Endereo 0 R1= [Endereo]
5 00000101 R1 Endereo 0 [Endereo] =R1
6 00000110 R1 R2 NI Se R1= R2 CI =CI + 4 * NI
7 00000111 R1 R2 NI Se R1<>R2 CI = CI+4 * NI
8 00001000 Endereo 0 0 CI = Endereo
9 00001001 R1 R2 R3 R1= R2 * R3
10 00001010 R1 R2 R3 R1=R2 div R3(diviso inteira)
11 00001011 0 0 0 sair
Exemplo de programa escrito com a linguagem de mquina acima, com valores
representados em base decimal:
Endereo Contedo da Memria
0000:0000 4 0 20 0
0000:0004 4 1 24 0
0000:0008 1 4 0 1
0000:0012 5 4 28 0
0000:0016 11 0 0 0
0000:0020 5
0000:0024 7
0000:0028
0000:0032
Exemplo de programa escrito com a linguagem de mquina acima, com valores
representados em base hexadecimal (endereos) e base binria (instrues):
Endereo Contedo da Memria
0000:0000 00000100 00000000 00010100 00000000
0000:0004 00000100 00000001 00011000 00000000
0000:0008 00000001 00000100 00000000 00000001
0000:000C 00000101 00000100 00011100 00000000
0000:0010 00001011 00000000 00000000 00000000
0000:0014 00000101
0000:0018 00000111
0000:001C
0000:0020
Vamos brincar de CPU. Para facilitar vamos usar para as representaes de
informao (dados e endereos) a base decimal, mas sendo consciente que internamente
a representao binria.
Algoritmos
15
Situao 01 carga do programa para a memria principal
Registradores Valores
CI 0000:0000
RI
R0
R1
R2
R3
R4
Inicia o valor de CI com o endereo da
primeira instruo do programa a ser
executado


Situao 02 execuo do primeiro ciclo de mquina
Registradores Valores
CI 0000:0004
RI 4-0-20-0
R0 5
R1
R2
R3
R4
Carrega-se a instruo apontada pelo CI para o RI
Incrementa CI para o novo endereo
Decodifica a instruo: carregar o valor do endereo
de memria 20 para o registrador R0 (neste caso o
valor 5)


Situao 03 execuo do segundo ciclo de mquina
Registradores Valores
CI 0000:0008
RI 4-1-24-0
R0 5
R1 7
R2
R3
R4
Carrega-se a instruo apontada pelo CI para o RI
Incrementa CI para o novo endereo
Decodifica a instruo: carregar o valor do endereo de
memria 24 para o registrador R1 (neste caso o valor 7)


Situao 04 execuo do terceiro ciclo de mquina
Registradores Valores
CI 0000:0012
RI 1-4-0-1
R0 5
R1 7
R2
R3
R4 12
Carrega-se a instruo apontada pelo CI para o RI
Incrementa CI para o novo endereo
Decodifica a instruo: somar o contedo do registrador
R0 com o contedo do registrador R1 e armazenar o
resultado no registrador R4


Situao 05 execuo do quarto ciclo de mquina
Registradores Valores
CI 0000:0016
RI 5-4-28-0
R0 5
R1 7
R2
R3
R4 12
Carrega-se a instruo apontada pelo CI para o RI
Incrementa CI para o novo endereo
Decodifica a instruo: descarregar o contedo do
registrador R4 no endereo de memria 28



Endereo Contedo da Memria
0000:0000 4 0 20 0
0000:0004 4 1 24 0
0000:0008 1 4 0 1
0000:0012 5 4 28 0
0000:0016 11 0 0 0
0000:0020 5
0000:0024 7
0000:0028 12
0000:0032

Algoritmos
16

Situao 06 execuo do quinto ciclo de mquina
Registradores Valores
CI 0000:0024
RI 11-0-0-0
R0 5
R1 7
R2
R3
R4 12
Carrega-se a instruo apontada pelo CI para o RI
Incrementa CI para o novo endereo
Decodifica a instruo: encerrar o programa



[ Bibliografia ]

BROOKSHEAR, J. Glenn. Cincia da Computao Uma viso
abrangente. 5. ed. Porto Alegre: Bookman, 2000.
BARRETO, Jorge Muniz. Notas de aulas do mestrado em Cincia da
Computao, 2000.
CORTELAZZO, Iolanda B. C, link disponvel na web:
http://www.boaaula.com.br/iolanda/hic/hicsum.html, consultado em 20/12/2007.
MANZANO, Jose Augusto Navarro Garcia.; OLIVEIRA, Jayr Figueiredo de.
Algoritmos: Lgica para o desenvolvimento de programao de
computadores. rica, 18 ed.

Potrebbero piacerti anche