Em CLPs, a gestão da memória é estrita. Se um sistema possui um endereçamento de memória por bytes ( 8 bits por casa) e você aloca uma variável DINT (Double Integer, 32 bits) começando no endereço %MDO, qual será, obrigatoriamente, o próximo endereço livre de 32 bits?

Passo 1

O enunciado dá as seguintes informações (tudo pego do enunciado):
  • Endereçamento de memória por bytes: cada endereço corresponde a 8 bits (ou seja, 1 byte).
  • Uma variável do tipo DINT tem 32 bits.
  • A variável DINT foi alocada começando no endereço \%\!MD0.
    A pergunta: qual será, obrigatoriamente, o próximo endereço livre de 32 bits?

Passo 2

Entendendo a unidade de armazenamento (mini-aula rápida e prática).
  • Um byte tem 8 bits. Quando o sistema endereça por bytes, cada incremento de endereço significa um byte a mais.
  • Para converter bits em bytes usa-se:
\text{bytes}=\frac{\text{bits}}{8}.
Aplicando à nossa variável:
\frac{32}{8}=4\\ \text{bytes}.
Logo, um DINT ocupa exatamente 4 bytes consecutivos na memória.

Passo 3

O que significa "alocado começando no endereço \%\!MD0".
  • Começar em \%\!MD0 quer dizer que o primeiro byte do DINT fica em \%\!MD0.
  • Como o DINT precisa de 4 bytes consecutivos, ele vai ocupar os quatro endereços byte-a-byte a partir de \%\!MD0.

Passo 4

Listando explicitamente os bytes ocupados (passo a passo, sem pular etapas).
  • Primeiro byte: \%\!MD0
  • Segundo byte: \%\!MD1
  • Terceiro byte: \%\!MD2
  • Quarto byte: \%\!MD3
    Portanto, os endereços \%\!MD0 até \%\!MD3 ficam ocupados pelo DINT.

Passo 5

Determinar o próximo endereço livre de 32 bits.
  • Depois de ocupar \%\!MD0,\%\!MD1,\%\!MD2,\%\!MD3, o próximo byte livre é \%\!MD4.
  • Como um DINT precisa de 4 bytes, o próximo endereço válido para alocar outro DINT (próximo endereço livre de 32 bits) é \%\!MD4.

Resposta

\%MD4

Exercícios relacionados