Discrimine as funções das diretivas .equ, .set, .org e .include.

Passo 1

Beleza, então o exercício pede pra gente “discriminar” – ou seja, explicar direitinho – o que fazem as diretivas de montagem (assembly) .equ, .set, .org e .include. Isso cai em “Diretivas do Montador”, parte de como a gente controla símbolos, constantes, posicionamento de código e inclusão de arquivos na hora de gerar o programa final. A gente vai precisar saber:
  • O que é um símbolo/constante no montador
  • Como o montador gerencia o endereço de cada instrução (contador de localização)
  • Como incluir um arquivo externo

Passo 2

Diretiva .equ
  • O que faz: define um símbolo como uma constante imutável.
  • Por que usar: quando você quer dar nome a um valor (por exemplo, TAMANHO = 10) pra deixar o código mais legível.
  • Como funciona:
    1. Você escreve MEU_VALOR .equ 42.
    2. Sempre que usar MEU_VALOR no código, o montador substitui por 42.
    3. Se tentar redefinir MEU_VALOR depois, dá erro (é “immutable”).

Passo 3

Diretiva .set
  • O que faz: também define um símbolo, mas permite mudar o valor depois.
  • Por que usar: se você precisa de uma “variável” de montagem, que pode ter valores diferentes em pontos distintos do código.
  • Como funciona:
    1. Você escreve CONTADOR .set 0.
    2. Pode usar CONTADOR no código e, mais adiante, fazer CONTADOR .set 5.
    3. O montador atualiza o valor para 5 a partir desse momento.

Passo 4

Diretiva .org
  • O que faz: ajusta o contador de localização (o endereço onde a próxima instrução/dado vai ser colocado).
  • Por que usar: controlar exatamente em que posição de memória seu bloco vai ficar (por exemplo, vetor na RAM ou vetor na ROM).
  • Como funciona:
    1. Digamos que o montador está na posição 0x100 e você escreve .org 0x200.
    2. Ele pula (preenche com bytes nulos) de 0x100 até 0x1FF e fica posicionado em 0x200.
    3. Aí, qualquer dado/instrução nova começa a partir desse 0x200.

Passo 5

Diretiva .include
  • O que faz: “cola” o conteúdo de outro arquivo fonte no ponto em que ela aparece.
  • Por que usar: organizar o projeto em vários módulos, separar tabelas de constantes ou macros em outros arquivos.
  • Como funciona:
    1. Você escreve .include "rotinas.asm".
    2. O montador abre rotinas.asm e processa tudo ali dentro como se estivesse no seu arquivo principal.

Resposta

  • .equ cria um símbolo constante e imutável.
  • .set cria um símbolo que você pode redefinir ao longo do código.
  • .org move o contador de localização para o endereço que você indicar, criando “buracos” se precisa.
  • .include insere o conteúdo de um arquivo externo na montagem do seu código.

Exercícios relacionados