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
.
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:
Aplicando à nossa variável:
Logo, um DINT ocupa exatamente
4
bytes consecutivos na memória.
Passo 3
O que significa "alocado começando no endereço
".
- Começar em
quer dizer que o primeiro byte do DINT fica em . - Como o DINT precisa de
4 bytes consecutivos, ele vai ocupar os quatro endereços byte-a-byte a partir de .
Passo 4
Listando explicitamente os bytes ocupados (passo a passo, sem pular etapas).
- Primeiro byte:
- Segundo byte:
- Terceiro byte:
- Quarto byte:
Portanto, os endereçosaté ficam ocupados pelo DINT.
Passo 5
Determinar o próximo endereço livre de 32 bits.
- Depois de ocupar
, o próximo byte livre é . - 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) é
.