ARM7TDMI处理器将存储器看作是一个从0开始的线性递增的字节集合: (1)字节0到3保存第1个存储的字 (2)字节4到7保存第2个存储的字 (3)字节8到11保存第3个存储的字 (4)依此类推 ARM7TDMI处理器可以将存储器中的字以下列格式存储(详细说明见“存储器格式”小节): (1)大端格式(Big-endian) (2)小端格式(Little-endian) 关于“地址空间”:ARM结构使用单个平面的232个8位字节地址空间。字节地址按照无符号数排列,从0到232-1。地址空间可以看作是包含230个32位字 ,或231个16位半字。如果地址向上或向下溢出地址空间,通常会发生翻转。 注意:如果在取指操作时地址发生溢出,只要没有执行预取的无效指令,就不会导致异常。 跳转目标的计算方法:(当前指令的地址) + 8 + 偏移量 下一条指令位置的计算方法:(当前指令的地址) + 4 关于“存储器格式”:地址空间的规则: (1)位于地址A的字包含的字节位于地址A,A+1,A+2和A+3; (2)位于地址A的半字包含的字节位于地址A和A+1; (3)位于地址A+2的半字包含的字节位于地址A+2和A+3; (4)位于地址A的字包含的半字位于地址A和A+2;
|