Considere a tabela de opcodes: ADD = 00000010, SUB = 00000011, MOV = 00000100. Em um formato com 8 bits de…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Explorar e construir a solução de problemas por meio de refinamentos, utilizando diversos níveis de abstração desde a especificação até a implementação.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Considere a tabela de opcodes: ADD = 00000010, SUB = 00000011, MOV = 00000100. Em um formato com 8 bits de opcode seguido por 8 bits de operando imediato, qual é a codificação da instrução 'ADD 12'?
- A) 0000001000001100
- B) 0000010000001100
- C) 0000001100001100
- D) 0000001000001011
- E) 0000001000011000
✅ Resposta correta: alternativa A
Resolução passo a passo
- Identifique o opcode de ADD na tabela: 00000010 (8 bits).
- Converta o operando imediato 12 para binário com 8 bits. 12 = 8 + 4 = 2^3 + 2^2, logo 00001100.
- Concatene os dois campos, na ordem opcode seguido de operando: 00000010 + 00001100 = 0000001000001100, que tem 16 bits, como pede o formato.
- Compare com as alternativas. A é exatamente essa sequência, e o gabarito oficial (A) está correto.
- Por que as outras estão erradas: B usa o opcode de MOV (00000100), não o de ADD. C usa o opcode de SUB (00000011), não o de ADD. D codifica 11 (00001011) em vez de 12 no operando. E codifica 24 (00011000), o que equivale a deslocar 12 uma casa para a esquerda em binário, ou seja, dobrar o valor.
💡 Dica: Converta o opcode e o operando para binário e combine.
Alternativa por alternativa
Correto — 00000010 (ADD) + 00001100 (12) = 0000001000001100.
O aluno trocou o opcode de ADD pelo de MOV (00000100), tratando os opcodes como se fossem intercambiáveis ou lendo a linha errada da tabela.
O aluno usou o opcode de SUB (00000011) em vez do de ADD, provavelmente por leitura da tabela na linha vizinha.
O aluno converteu o operando 12 de forma errada, obtendo 00001011 (que é 11), ou seja, errou a conversão decimal para binário.
Por que engana: Confundir o opcode com o operando imediato, ou converter incorretamente o numero decimal para binario.
O aluno codificou o operando como 00011000 (24), possivelmente porque deslocou os bits de 12 para a esquerda ou dobrou o valor ao converter, achando que isso era a codificação do número.
Raio-X da questão
codificação de instruções
avaliacao
representacao binaria de numeros · codificacao de instrucoes em binario
Revisar a representação binária de opcodes e operandos.
Confundir o opcode com o operando imediato, ou converter incorretamente o numero decimal para binario.
ciencia_tecnologia
abstrato
Questões parecidas com resolução
- Considere uma CPU simples cujo formato de instrução tem 1 byte (8 bits) de opcode seguido por 1 byte de operando. A…
- Identifique qual das opções abaixo representa uma instrução que uma máquina pode executar.
- Explique, com suas palavras, a diferença entre opcode e operando em uma instrução de máquina e dê um exemplo simples de…
- Considere a variável inteira 'x' armazenada em 12 bits. Quantos valores distintos 'x' pode representar, assumindo…
- Escreva uma sequência simples de instruções (em pseudo-assembly) que some três valores armazenados em memória nas…
- Considere o código a seguir: A = 000, B = 001, C = 010, D = 011, E = 100. Qual é a sequência binária que representa a…
🔎 Procurar outra questão
Procure no banco do GeraProva pelo tema ou por um trecho do enunciado. Cada questão já vem com resolução comentada e a análise de cada alternativa.
Professor: monte a prova com questões como esta, com gabarito e folha de respostas, em 30 segundos. Ver planos · Blog
