Alternativa A - I, II, III e IV estão corretas.
Análise da Questão
A questão aborda a estrutura de formato das instruções na arquitetura ARM, que utiliza instruções fixas de 32 bits. Para responder corretamente, devemos verificar se a soma das partes descritas nas afirmativas corresponde ao tamanho total da instrução (32 bits).
Estrutura da Instrução ARM (32 bits)
Podemos decompor os 32 bits da seguinte forma para validar as afirmações:
- Condição de Execução (Bits 31-28):
- Ocupa 4 bits. Define se a instrução deve ser executada baseada nos status flags (ex: EQ, NE, GT).
- \rightarrow Afirmativa I está correta.
- Tipo de Instrução e Opcode (Bits 27-0):
- Existem 3 bits dedicados para definir a classe ou tipo da instrução (ex: Processamento de Dados, Memória, Ramificação).
- Existem 5 bits dedicados ao opcode propriamente dito, que define a operação específica dentro daquela classe.
- Juntos, esses campos de controle ocupam $3 + 5 = 8$ bits.
- \rightarrow Afirmativas II e III estão corretas.
- Operandos (Bits 19-0):
- Após descontar os bits de condição (4), tipo (3) e opcode (5), temos o restante para os dados.
- Cálculo: $32 \text{ bits} - (4 + 3 + 5) \text{ bits} = 20 \text{ bits}$.
- Esses 20 bits são utilizados para registrar números de registradores (R_d, R_n, R_m), deslocamentos e rotações.
- \rightarrow Afirmativa IV está correta.
Conclusão Matemática
A lógica da questão baseia-se na soma exata dos bits descritos:
4 \text{ (condição)} + 3 \text{ (tipo)} + 5 \text{ (opcode)} + 20 \text{ (operadores)} = 32 \text{ bits}
Como todas as afirmativas contribuem para compor perfeitamente a instrução de 32 bits, todas estão corretas.
Alternativa A.