Fundamentos de Arquiteturas de Computadores

Aula de laboratório - Execução de instruções de linguagem de montagem

Arquitetura do conjunto de instruções

O processador hipotético apresentado em sala de aula possui as seguintes características:
  1. palavra de 32 bits
  2. 8 registradores de 32 bits com os respectivos identificadores: 0,1,2,3,4,5,6,7, sendo que o registrador 0 armazena o valor constante 0
  3. capacidade máxima de endereçamento de 65536 palavras de memória
  4. instruções de 32 bits
O conjunto de instruções desta máquina é composto de 8 instruções:

Instrução em Linguagem de Montagem Ação
add regA regB destregsoma o conteúdo do registrador regA com o conteúdo de regB e armazena resultado no registrador destreg
addi regA regB imediatosoma o conteúdo do registrador regA com o valor imediato e armazena resultado no registrador regB
lw regA regB deslocamento carrega no registrador regB o conteúdo da palavra da memória cujo endereço é a soma do conteúdo do registrador regA com o valor deslocamento
sw regA regB deslocamento armazena o conteúdo do registrador regB na palavra da memória cujo endereço é a soma do conteúdo do registrador regA com o valor deslocamento
beq regA regB deslocamento caso os conteúdos dos registradores regA e regB sejam iguais, vai para o endereço PC+1+deslocamento, onde PC é o endereço da instrução beq
halt incrementa o valor de PC e para execução do programa
noop incrementa o valor de PC e vai para próxima instrução

As instruções possuem 32 bits e são codificadas da seguinte maneira:

Instrução em Linguagem de Montagem Código de operação
add regA regB destreg000
addi regA regB imediato001
lw regA regB deslocamento 010
sw regA regB deslocamento 011
beq regA regB deslocamento 100
halt 110
noop 111

Execução de instruções

A ferramenta MostraExecução mostra a execução de uma instrução nesta máquina hipotética. Para utilizá-la, você deve salvar em um diretório o arquivo MostraExec.swf e executá-la através de um browser que possa executar arquivos do tipo Shockwave Flash.

Quando a ferramenta é acionada, são apresentados um diagrama da máquina apresentada em sala de aula e logo abaixo alguns controles que você poderá utilizar para controlar a execução das instruções.

No primeiro campo denominado "INSTRUÇÕES", você deve indicar a instrução desejada (add, addi, lw, sw, beq).

No campo denominado "Registradores", você deve entrar com o conteúdo dos registradores a serem lidos e com o valor imediato.

O campo "Memória Principal" permite que você preencha o conteúdo de 6 endereços de memória (1, 2, 3, 4, 5, e 6).

O botão "Executar" localizado no campo "INSTRUÇÕES", quando acionado, mostra a execução de uma instrução, colocando os valores resultantes nos respectivos campos, mostrando o fluxo dos dados no esquema da máquina através de uma animação e indicando os valores que devem ter os sinais de controle utilizados nos multiplexadores. Para pausar a execução de uma instrução, deve-se acionar o botão "pausar" no campo "Controle de Execução". Para continuar a execução de uma instrução, deve-se acionar o botão "iniciar" do campo "Controle de Execução".

A seguir será descrito um exemplo de utilização desta ferramenta. A instrução a ser estudada é lw 3 2 1 , sendo que o conteúdo do registrador 3 deve ser 4. Esta instrução fará com que o conteúdo do endereço de memória 5 que deve ser igual a 100 seja colocado no registrador 2. Para observar a execução desta instrução, os seguintes passos devem ser realizados:

  1. Preencher o conteúdo do campo "REG a ser lido 1" com o valor 4
  2. Preencher o conteúdo do campo "Imediato" com o valor 1
  3. Preencher o conteúdo do campo "End 5" com o valor 100
  4. Selecionar a instrução "lw" no campo "INSTRUÇÕES"
  5. Acionar o botão "Executar" no campo "INSTRUÇÕES"

Questão 1:

Indique os passos que devem ser realizados para observar a execução da instrução sw 3 2 1 , sendo que o conteúdo do registrador 2 deve ser 5 e o endereço onde vai ser escrito o conteúdo do registrador 2 deve ser 4. Verifique se a instrução é executada corretamente.

Questão 2:

Indique os passos que devem ser realizados para observar a execução da instrução add 1 2 3 , sendo que o conteúdo do registrador 1 deve ser -1 e do registrador 2 deve ser 4. Verifique se a instrução é executada corretamente.

Questão 3:

Indique os passos que devem ser realizados para observar a execução da instrução addi 1 2 -2 , sendo que o conteúdo do registrador 1 deve ser 3. Verifique se a instrução é executada corretamente.

Questão 4:

Indique os passos que devem ser realizados para observar a execução da instrução beq 4 5 3 , para as duas situações : (1) conteúdo do registrador 4 igual ao conteúdo do registrador 5, (2) conteúdo do registrador 4 diferente do conteúdo do registrador 5. Verifique se a instrução é executada corretamente.