Este documento descreve a arquitetura e organização do computador SAP1, definindo cada um de seus componentes e módulos, como a unidade de controle, memória RAM, registradores e unidades lógicas. Também exemplifica programas simples em linguagem de máquina, mostrando como instruções em assembly são traduzidas para códigos binários.
1. Curso:Análise e Desenvolvimento de Sistemas
Disciplina: ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES
Tutor:Fernando Marco Perez Campos
Aluno: Willian Leal da Silva RA: 8138708
Unidade (Polo): Orlando -FL Turma: DGTDS2101ORLA0D
2.
3. • Contador de Programa (CP)
• Qual a função de um contador de programa?
• Lembre-se de que uma das características de um computador é o armazenamento de todo
• o programa e dos dados na sua memória.
• Este armazenamento ocorre nas posições de memória, de forma sequencial, iniciando-se na posição (0000)2 e seguindo para os
próximos endereços: (0001) 2, (0010)2, (0011)2 e assim sucessi- vamente.
• Essas posições são compostas por 4 bits porque é uma característica da memória do SAP1, que possui 16 posições de memória.
• A função do Contador de Programa (CP) é a de apontar para o computador a próxima ins- trução a ser executada.
• Toda vez que o computador é inicializado, o Contador de Programa aponta para o ende- reço (0000); antes de o computador
executar a primeira instrução, o CP passa para a memória a posição da instrução que será executada (no caso (0000)2) e incrementa
o seu valor, e se prepara para apontar para a segunda instrução, ou seja, a instrução que virá após a busca e execução da primeira
instrução. O contador de programa repetirá esse procedimento até o final do programa.
• O Contador de Programas funciona como um dedo apontando para a próxima instrução a ser executada, ele muitas vezes é
chamado de apontador.
• A tarefa desempenhada pelo CP é parte integrante da Unidade de Controle.
•
4. Entrada e REM
• É neste módulo que ocorre a entrada de dados e instruções para
que o SAP1 possa ser programado (entrada), e também é o local onde
fica armazenado o valor passado pelo CP, que é o endereço que será
acessado na memória RAM (Registrador de Endereço de Memória
REM).
•
5. RAM
• RAM é uma memória estática que possui 16 linhas e 8 bits por linha,
ou seja 16 X 8, com a
• finalidade de armazenar instruções e dados a serem utilizados pelo
computador.
• Durante o processamento, a RAM recebe endereços de 4 bits do
REM e logo após é execu- tado uma operação de leitura neste
endereço e o seu conteúdo é disponibilizado no barramento w para
a devida utilização.
6. Registrador de instruções
•Quando uma instrução é lida da memória RAM, o byte referente à
instrução é enviado ao Registrador de Instrução (RI), onde ele é
separado em dois nibbles (meio byte), o nibble superior é referente à
própria instrução e é passado imediatamente ao Controlador-
Sequencializador e o nibble inferior é referente ao campo operando
que, quando for o caso, será disponibilizado no barramento w.
•A tarefa desempenhada pelo Registrador de Instruções é parte
integrante da Unidade de
•Controle.
7. Controlador-Sequencializador
Controlador-Sequencializador constitui parte da unidade de controle e é o módulo res-
•ponsável pelo controle do computador.
•Recebe o nibble referente a instrução que será executada naquele momento por inter-
médio do Registrador de Instrução, decodifica e envia uma palavra de controle de 12
bits para todo computador.
•A palavra de controle é responsável por habilitar ou desabilitar cada funcionalidade de
•cada módulo presente no computador a fim de que ele execute uma determinada
tarefa.
•Podemos fazer uma analogia entre o Controlador-Sequencializador e um maestro de
or- questra, que determina quem, o que fazer e em que hora fazer uma determinada
ação. O maes- tro é parte significativa para os componentes de uma orquestra, assim
como o Controlador-
•-Sequencializador é para os módulos que compõe o computador.
8. Acumulador
• O acumulador é um registrador de memória temporária que
armazena operandos e tam- bém resultados de processamentos.
Recebe um dado do barramento e pode disponibilizá-lo tanto para
o Somador-Subtrator quanto para o barramento novamente.
9. Somador-Subtrator
• O Somador-Subtrator é o módulo responsável por efetuar uma
operação de soma ou sub-tração entre o valor presente no
acumulador com outro valor presente na memória RAM.
• A subtração é feita pelo método do complemento de 2; ou seja,
para subtrair, ele efetua
• uma soma do acumulador com o complemento do segundo
operando.
10. Registrador B
Registrador B é um registrador de memória temporária utilizado em uma operação
•aritmética para pegar determinado valor presente no barramento e entregá-lo ao Somador-
•-Subtrator.
•Ele é necessário, pois o único caminho para se chegar ao Somador-Subtrator é por meio do Acumulador ou do
Registrador B; como o Acumulador já contém um operando, a única forma de carregar o outro operando no
Somador-Subtrator é passando por um caminho al- ternativo, no caso o Registrador B.
•O Acumulador, o Somador-Subtrator e o Registrador B são módulos que fazem parte da Unidade Lógica e
Aritmética do SAP1.
11. Registrador de Saída
• Depois que o computador executou um determinado processamento, o resultado fica ar-
• mazenado no Acumulador.
• Para que o usuário do computador possa visualizar o resultado do processamento, é ne- cessário
transferir o conteúdo do Acumulador para um registrador que permita o envio do re- sultado para o
usuário.
• O registrador responsável por pegar o resultado presente no Acumulador e disponibilizar
• o seu conteúdo para um dispositivo visual é chamado de Registrador de Saída ou Porta de Saída.
12. Indicador Visual em Binário
• Para visualizar o conteúdo do Registrador de Saída, é utilizado um conjunto de oito LEDS (diodos
emissores de luz) que ficam dispostos de forma alinhada e representam os oito bits presentes no RI.
14. Instruções
MNEMÔNICO OPCODE FUNÇÃO
LDA 0000 Carrega o valor contido no endereço de memória pelo seu operando no
acumulador.
ADD 0001 Soma o valor contido no endereço de memória apontado pelo seu operando
com o conteúdo armazenado no acumulador.
SUB 0010 Subtrai do valor contido no acumulador, o valor contido no endereço de
memória apontado pelo seu operando.
OUT 1110 Faz com que o conteúdo armazenado no acumulador seja indicado no
módulo indicador visual binário.
HLT 1111 Pára o processamento. É utilizado no final do programa.
15. Exemplos de programação do SAP1
ENDEREÇO INSTRUÇÃO
0H LDA EH
1H ADD FH
2H OUT
3H HLT
4H
5H
6H
7H
8H
9H
AH
BH
CH
DH
EH 03H
FH 05H
Exemplo:
Faremos um programa para retornar o resultado de 3+5.
Observação: Os valores 3 e 5 estão no sistema de numeração decimal e deverão ser arma- zenados nas posições EH e FH da memória.
16. PROGRAMA ESCRITO EM LINGUAGEM DE MONTAGEM X PROGRAMA ES-CRITO EM LINGUAGEM DE
MÁQUINA
• Os programas escritos, anteriormente, utilizam os MNEMÔNICOS das instruções do SAP1, juntamente com os
valores de posição de memória e operandos em hexadecimal.
• Essa forma de se escrever um programa chama-se MONTAGEM (assembly), ou seja, os programas escritos até
agora utilizaram uma linguagem denominada de Linguagem de Monta- gem, que gerou o que chamamos de
programa fonte.
• Como bem sabemos, os computadores precisam receber um programa em linguagem de máquina para poder
trabalhar, e o que veremos na sequência é como se faz para transformar um programa fonte escrito em linguagem
de montagem, em um programa escrito em lingua- gem de máquina.
• Qualquer programa escrito em linguagem de máquina chama-se programa objeto.
• A maioria dos programadores trabalham escrevendo programa em uma linguagem de alto nível e quem
transforma o programa fonte em programa objeto é o tradutor (pode ser um com- pilador ou interpretador).
• Veremos como é que se traduz um programa escrito em linguagem de montagem para linguagem de máquina,
sem a ajuda de um tradutor.
• Veja como é simples, basta substituir todos os valores apontados em hexadecimal para binário e indicar as
instruções por meio dos seus códigos de operação (opcode), e não mais pelo mnemônico (apelido).
• Para ficar claro, estude os programas a seguir, que são as traduções dos exemplos feitos
• em linguagem de montagem apresentados até agora.
17. Exemplos de programas escritos em
linguagem de máquina
ENDEREÇO INSTRUÇÃO
0000 0000 1110
0001 0001 1111
0010 1110
0011 1111
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110 0000 0011
1111 0000 0101
Exemplo:
Faremos um programa para retornar o resultado de 3+5.
Observação: Os valores 3 e 5 estão no sistema de numeração decimal e deverão ser arma- zenados nas posições EH e FH da memória.
18. REFERÊNCIAS BIBLIOGRÁFICAS
• MALVINO, Albert Paul; LASCHUK, Anatolio. Microcomputadores e microprocessadores. São Paulo: McGraw-
Hill do Brasil, 1985.
• MANUAL DO ALUNO ARQUITETURA E ORGANIZAÇÃODE COMPUTADORES