Por que um endereço de memória contém apenas 16 bytes de dados?

0
0x8048384 <main+16>: 0x00fc45c7     0x83000000     0x7e09fc7d     0xc713eb02
0x8048394 <main+32>: 0x84842404     0x01e80804     0x8dffffff     0x00fffc45

Portanto, cada endereço de memória contém 16 bytes de dados? 4x4 = 16. Então, 4 bytes é = 0x00fc45c7

Estou certo?

    
por Alkerak 28.11.2012 / 23:59

1 resposta

5

Isso não acontece. Um endereço específico na memória geralmente aponta para um byte de memória. No entanto, sua exibição aqui está mostrando cada byte de memória de 0x8048384 para 0x80483A4 - São 32 bytes de memória, organizados em 2 linhas de 4 valores de 4 bytes.

Se você olhar com cuidado no lado esquerdo, os endereços não serão incrementados em um entre as linhas, mas sim por 16: 84 - > 94 (na base 16), que informa que há 16 bytes de memória sendo exibidos em cada linha. Isso geralmente é mais conveniente do que 1 byte por linha, e essas linhas de 16 bytes são divididas em grupos de 4 bytes, porque é bastante comum usar números alinhados de 32 bits, que cada agrupamento de 4 bytes representa. Isso facilita o processamento visual das informações sem recorrer a outras ferramentas de interpretação.

    
por 29.11.2012 / 00:39

Tags