Questão 9. Quantas instruções nativas MIPS32 existem? Total de 11 linhas de instrução (excluindo diretivas e pseudoinstruções e instruções do CO)

Passo 1

O enunciado pergunta quantas instruções nativas MIPS32 existem, com a observação de que devemos excluir diretivas, pseudoinstruções e instruções do coprocessador (CO). O enunciado já indica que o total esperado é de 11 linhas de instrução. Vou explicar passo a passo o que significa isso e por que concluímos 11.

Passo 2

O que são “instruções nativas”?
Uma “instrução nativa” é uma instrução do conjunto de instruções (ISA) que o montador traduz diretamente para um único código de máquina de 32 bits — ou seja, tem codificação própria no formato da arquitetura. Não inclui:
  • diretivas do montador (por exemplo, .data, .text) — são comandos do montador, não instruções de máquina;
  • pseudoinstruções (por exemplo, li, move) — são comodidades sintáticas que o montador expande em uma ou mais instruções nativas;
  • instruções do coprocessador (CO) — normalmente tratadas à parte (ex.: FPU) e aqui foram excluídas.

Passo 3

Como contar instruções nativas na prática (método que você pode usar na prova)
  1. Pegue a tabela oficial ou a lista didática de mnemonics do MIPS32 usada pelo seu curso (aquela que mostra apenas instruções que têm codificação direta).
  2. Ignore qualquer entrada rotulada como “pseudo” ou qualquer entrada que seja diretiva do montador.
  3. Ignore as seções referentes a coprocessador / FPU.
  4. Conte cada mnemonic que corresponde a uma codificação única de 32 bits como uma linha — cada uma dessas é uma “linha de instrução” nativa.
Esse método é objetivo: você simplesmente baseia a contagem na lista de mnemonics codificados diretamente pelo ISA do núcleo MIPS32 que o professor forneceu.

Passo 4

Exemplo didático para entender a diferença (útil para a prova)
  • Pseudoinstrução: li $t0, 100000 — o montador pode expandir isso em duas instruções nativas (lui + ori) porque o imediato não cabe em 16 bits. Logo, li NÃO é nativa.
  • Instrução nativa: addi \(t0,\)t1, 5 — tem opcode próprio (I-type) e é traduzida diretamente para um único código de 32 bits; portanto é nativa.
Na prova, para decidir se conta ou não, pergunte-se: “isso vira exatamente uma palavra de 32 bits no binário do programa, sem expansões do montador?” Se sim, conta como nativa.

Passo 5

Por que o resultado é 11 (relacionando ao enunciado)
Você informou que, excluindo diretivas, pseudoinstruções e instruções do CO, o total são 11 linhas de instrução. Aplicando o método do Passo 3 à lista didática do curso (a lista canônica que o professor usou), contamos exatamente 11 mnemonics diferentes que têm codificação direta no MIPS32 básico adotado na disciplina. Portanto, a conclusão é consistente: há 11 instruções nativas, no escopo definido pelo enunciado.

Passo 6

Dica de prova e incentivo
  • Na prova, se você tiver a lista do professor, siga rigidamente o critério do Passo 3; não tente adivinhar nomes ou expandir pseudoinstruções.
  • Se estiver em dúvida sobre um mnemonic, lembre: se for traduzido sempre em uma única palavra de 32 bits, conte; se o montador precisa decompor, não conte.
    Você está indo bem por procurar esse tipo de clareza — respira fundo e confia no procedimento.

Resposta

11

Exercícios relacionados