上QQ阅读APP看书,第一时间看更新
3.3.1 ARM920T地址空间
开始之前,我们先看看ARM体系中的字节、半字、字、双字,它们究竟表示能存放多少二进制位。可能其他CPU体系与此不同。
□字节:能存放8个二进制位。
□半字:能存放16个二进制位。
□字:能存放32个二进制位。
□双字:能存放64个二进制位。
ARM920T CPU使用的是单一扁平的地址空间。由于ARM920T CPU是32位的,所以它使用了0~232-1的无符号整数来表示一个地址值。其地址空间大小是232个,可以存放8个二进制位的字节。可以把它想象成线性的字节数组,用伪C语言描述是这样的:unsigned char a[232]。
ARM920T的地址空间也可以看成是230个32位的字单元,用伪C语言描述是这样的:unsigned inta[230]。每个字单元的地址都能被4整除,即地址值的最低两个二进制位是00。这个32位的数据如果从0地址开始存放,那么地址0、地址1、地址2、地址3就包含这整个32位的数据。
ARM920T的地址空间还可以看成是231个16位的半字单元,用伪C语言描述是这样的:unsigned short int a[231]。每个半字单元的地址都能被2整除,即地址值的最低1个二进制位是0。这个16位的数据如果从0地址开始存放,那么地址0、地址1就包含这整个16位的数据。