十六进制变量使用了多少字节?

时间:2016-10-08 01:07:29

标签: assembly nasm

我目前正在学习测试,我遇到了这个问题,由于某种原因,我似乎很难用它,我希望我能在这里得到一些澄清。

我找到了雅虎答案的答案,但没有解释,我也不相信答案。它只是说明0040006Ah - 00400020h = 4A = 74字节。

问题是: var1的地址是00400020h。 var1之后的下一个变量的地址是0040006Ah。 var1使用了多少字节?

如果我错了,请纠正我,但我的理解是每个"数字"由十六进制值表示的包含4位。因此,如果我对问题的理解是正确的,答案应该少于一个字节。由于4A的差异不等于一个字节。差异必须至少为FFh才能算作一个字节。如果我错了,请纠正我或指出正确的方向

1 个答案:

答案 0 :(得分:1)

每个地址都是一个单独的字节。内存是字节可寻址的。即0x0040006A是整个字节的地址。

0040006Ah - 00400020h是0x4A = 74的地址差异,这意味着相差74个字节。

在普通计算机上,在C中使用char *的asm map 1:1中的地址。 (这不是C标准所保证的,这只是普通C实现的一个事实)。