|

Arquitetura Melhorada de Computador
A figura abaixo apresenta a arquitetura para um computador com uma memória que armazena palavras de doze bits, com um conjunto de dezesseis instruções, ou seja, código de operações de quatro bits.Para simplificar a análise, a memória será dotada somente de dois terminais: um de leitura(R) e um de escrita(W).Para executar qualquer uma das operações é suficiente colocar o terminal no nível ativo ALTO.
![]() |
Registrador de Operações(OPR) : registrador de quatro bits e conterá o código de operação da instrução sendo executada
Registrador de Propósitos Gerais(GPR) : registrador de doze bits que armazenará instruções lidas da memória e dados a serem escritos/lidos da memória
Registrador Flag do Acumulador(F) : registrador de um bit que será setado quando acontecer vai-um na posição mais significativa do Acumulador
Registrador Flag do Registrador de Propósitos Gerais(Z) : registrador de um bit que será setado quando o conteúdo de GPR forem todos bits 0
Observe que os dois Flags estão disponíveis para o Controlador através de uma conexão direta.Então, na execução de algumas instruções, a próxima microoperação na seqüência pode depender dos resultados produzidos pelas microoperações precedentes, e o Controlador pode seguir uma seqüência ou outra, dependendo do nível lógico dos Flags F ou Z.
Microoperações do GPR
Microoperações da ULA
![]() |
Instruções
A seqüência de microoperações para o Controlador Buscar(Fetch) uma instrução na memória é apresentada na figura abaixo.
![]() |
No final da seqüência das microoperações de Busca, a parte de operação da instrução(código da operação) está no OPR e o endereço do operando, se houver, está na parte de endereços do GPR.
A escolha do conjunto de instruções do computador considera o compromisso entre a complexidade das instruções, o hardware necessário e os programas a serem escritos.Se as instruções são simples e poucas, então o circuito do controlador será simples e os programas devem ser maiores.Caso as instruções sejam complicadas e numerosas, então o circuito do controlador será mais elaborado e os programas mais simples.
Instruções de uma microoperação(podem ser executadas em um ciclo de relógio)
![]() |
Qualquer uma das instruções acima requer que um único terminal de controle seja colocado no nível ativo e podem ser executadas em um ciclo de relógio e consiste de uma só microoperação.
Instruções com Seqüência de Microoperações(podem ser executadas em vários ciclos de relógio)
ADD, endereço
Adicionar ao presente conteúdo do acumulador o número(operando) localizado no endereço de memória que está especificado como parte da instrução.
![]() |
O endereço do operando pode ser direto ou indireto.O endereço direto significa que a instrução tem o endereço da posição de memória onde está o operando(Fig.6(a)).O endereço indireto é quando a instrução tem o endereço da posição de memória onde está o endereço do operando(Fig.6(b)).
![]() |
ADDI, endereço
O conteúdo da posição de memória cujo endereço está armazenado em endereço é somado ao conteúdo do Acumulador e o resultado fica no Acumulador.
![]() |
STA, endereço
Armazenar o conteúdo do Acumulador em um endereço da memória indicado em endereço
![]() |
Normalmente as instruções são listadas na memória na ordem em que devem ser executadas e o acesso será a uma instrução após a outra incrementando o Contador de Programa.Algumas vezes será preciso não seguir esta seqüência mas saltar para uma instrução que não esteja na ordem seqüêncial.
JMP, endereço
Saltar(Jump) para a instrução localizada no local de memória especificado na instrução em endereço
![]() |
JMPI, endereço
Saltar para a instrução cujo endereço está armazenado no local endereço da memória; endereço armazena o endereço da próxima instrução a ser executada
![]() |
A parte de endereço da instrução JMPI é o endereço do local da memória que tem o endereço da próxima instrução.
Uma rotina é definida como um conjunto de instruções que realiza determinada função dentro de um programa.A chamada da sub-rotina ou salto para uma sub-rotina é o processo no qual o fluxo do programa principal de execução da instruções é desviado para a execução de uma determinadaq rotina.
CSR, endereço
Chamar a sub-rotina.A instrução armazena o endereço de retorno ao programa principal no local da memória especificado na instrução(endereço) e busca a próxima instrução a partir da locação endereço+1
![]() |
O fim da sub-rotina deve ser sempre o retôrno ao local da memória onde o programa fez o salto para a sub-rotina
![]() |
ISZ, endereço
Incrementar e saltar se zero; ler o número no local de memória endereço, incrementá-lo e retorná-lo a seu local original; se depois do incremento o número fôr zero, saltar a próxima instrução
![]() |
HLT
Parar; esta instrução colocará o computador inativo, nenhuma operação será realizada
|
|
|
| CRA | limpar acumulador |
| CTA | complementar acumulador |
| ITA | lincrementar acumulador |
| CRF | limpar flip-flop F |
| CTF | complementar flip-flop F |
| SFZ | saltar próxima instrução se F é zero |
| ROR | girar à direita |
| ROL | girar à esquerda |
| ADD | adicionar ao acumulador |
| ADDI | adicionar ao acumulador, indireto |
| STA | armazenar na memória do acumulador |
| JMP | saltar |
| JMPI | saltar indireto |
| CSR | chamar sub-rotina |
| ISZ | incrementar e saltar se Z é um |
| HLT | parar |
|
|
Como Funciona um Microprocessador Esta página da Intel mostra o funcionamento de um processador moderno, com registradores e outras unidades interagindo na execução de instruções. Compare o funcionamento dessa arquitetura com a arquitetura estudada. É preciso ter o plug-in Shockwave instalado. |
