字地址和内存地址如何相关?例如,我有一台32位机器。地址是4还是1?以下哪一项是正确的?
0x100: 0x 1111 2222
0x104: 0x 3333 4444
0x100: 0x 1111 2222
0x101: 0x 3333 4444
如果跳过4,我可以使用0x101访问11,0x102可以访问22吗?
答案 0 :(得分:1)
X86可以解决位于几乎任何地址的字节,字和双字(参见LES / LDS / LSS);更具体地说,IA中最小的可寻址单元是一个字节;该体系结构是小端,字不与字大小对齐。在x86上限制适用于跨越段的内存地址:尝试访问CS / ES / SS / DS上的字:FFFF导致异常。
总结:
0x100: 01 02 03 04 <-- on 32-bit architecture (386+) contains 0x04030201
0x104: 05 06 07 07
The double word located at address 0x101 contains 0x05040302.
The 16-bit word located at address 0x101 contains 0x0302 and
The byte at 0x101 contains 0x02