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
- Durante uma campanha de arrecadação, uma escola receberá alimentos e produtos de higiene para montar cestas destinadas a…
- Em um exercício de preparação para períodos de chuva intensa, uma central municipal de Defesa Civil precisa localizar…
- Em ações de fiscalização ambiental no Brasil, imagens de satélite podem ser comparadas em diferentes datas para indicar…
- Uma família criou um programa para organizar as compras do mês. O programa recebe os preços, soma os produtos e…
- — Sem conexão estável no rio, o alerta precisa aparecer no próprio tablet — afirmou a técnica que acompanha sons de aves…
- Falhas em formulários digitais de serviços públicos levaram um setor de tecnologia a testar cinco programas de análise…
🔎 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
