• Estudo

Exercício CPU - 2

falha 1

Note

Para resolver o exercício a seguir vocês devem verificar a instrução que está sendo executada na CPU e o que ela deveria estar fazendo no hardawre.

Vocês estavam desenvolvendo o projeto F quando o teste de integração ./testeAssemblyMyCpu.py falhou no nasm descrito a seguir. Um colega do grupo enviou o waveform a seguir para você encontrar o problema (você deve falar o que está falhando).

Tip 1

  1. clique na imagem para ampliar
  2. esse waveform é dos sinais da CPU.vhd

Essa simulação executa o programa a seguir:

leaw $0, %A
movw (%A), %D
leaw $1, %A
movw (%A), %A
addw %A, %D, (%A)

Que possui a RAM iniciada com os seguintes valores:

Address Dado
0 0000000000000010
1 0000000001000010
3 0000000000000000

Resposta

O loadA não está em '1' durante a execução da quarta linha do código (movw).

Engenharia reversa

Você foi chamado para fazer engenharia reversa em um programa executando no HW do Z01, na captura de dados a equipe responsável não conseguiu capturar o sinal da Instrução, e não sabem quais comandos estão sendo executados no computador.

Encontre os três comandos em nasm que estão sendo executados no hardware nesse momento:

Tip 2

  1. clique na imagem para ampliar
  2. esse waveform é dos sinais da CPU.vhd

Resposta

leaw $3, %A
movw %A, %D
addw %A, %D, %D