MC 404 - Ciclo de execução de uma instrução

Prof. Célio Guimarães

Atualizado em 11 Mar 2010

Um computador digital executa instruções através um autômato que executa continuamente os passos elementares a seguir. Tomaremos como exemplo o diagrama de blocos da CPU simples visto em aula (onde deve-se ignorar o registrador ACC). O ciclo de execução de uma instrução tem os seguintes passos elementares:

  1. Busca da instrução:
  2. Decodificação da instrução em IR:
  3. execução da instrução
  4. Volta ao passo 1
Vamos ilustrar a execução da instrução add X, Y , que soma ao registrador X o conteúdo do registrador Y. Suporemos que o registrador PC (Program Counter) tem o endereço da memória onde se localiza esta instrução:
  1. Busca da instrução: como acima
  2. Decodificação da instrução em IR:
  3. execução da instrução: comanda a ULA a somar X e Y colocando o resultado em X
  4. Volta ao passo 1
Vamos agora exemplificar a execução da instrução LD X, end que carrega no registrador X o conteúdo da posição de memória dada pelo endereço end. Vamos supor também que o tamanho da palavra é suficiente para conter o código da instrução e o endereço do operando (isto não é verdade para o caso do AVR):
  1. Busca da instrução: como acima
  2. Decodificação da instrução em IR:
  3. execução da instrução: X ← data bus (X recebe o conteúdo da memória colocado no data bus)
  4. Volta ao passo 1
Exercício:
  1. Descreva os passos da CPU simples para executar a instrução: ST end, X , que armazena o conteúdo do registrador X na posição de memória endereçada por end
  2. Descreva os passos da CPU simples para executar uma instrução que incrementa o valor de um operando localizado na memória: INC [X] , onde X contém o endereço do operando na memória e o seu valor deve ser incrementado de 1 (suponha a existencia de um registrador de rascunho TEMP e um comando para a ULA somar 1 a esse registrador)