在存储器地址位 [英] Bits in a memory address
问题描述
在调试在Windows XP 32位使用免疫力调试器,我看到在堆栈上以下内容:
While debugging on Windows XP 32-bit using the immunity debugger, I see the following on the stack:
_Address_ -Value_
00ff2254 ff090045
00ff2258 00000002
我的理解是,每一个地址位置包含8位。
My understanding is that every address location contains 8 bits.
这是正确的?
推荐答案
如果我正确理解你的问题,答案是肯定的,每一个个体的内存位置包含8位。
If I'm understanding your question correctly, the answer is yes, every individual memory location contains 8 bits.
调试器是显示您一次4个字节(32位),使显示更加紧凑(因为很多数据类型占用32位,所以这是可以看到32位值)。这就是为什么在左栏的地址是4个地点分开。
The debugger is showing you 4 bytes (32 bits) at a time, to make the display more compact (and because many data types take up 32 bits, so it's often useful to see 32-bit values). That's why the addresses in the left column are 4 locations apart.
如果调试器在同一时间显示一个字节(8位),显示是这样的:
If the debugger showed one byte (8 bits) at a time, the display would look like this:
_Address_ -Value_
00ff2254 45
00ff2255 00
00ff2256 09
00ff2257 ff
00ff2258 02
00ff2259 00
00ff225a 00
00ff225b 00
(假定你是一个小尾数的机器,其中大部分现代桌面电脑是。)
(assuming you're on a "little-endian" machine, which most modern desktop PCs are.)
这篇关于在存储器地址位的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!