(转)ARM体系中字、半字和字节,ARM指令字对齐半字对齐

原文传送门

字(Word):在ARM体系结构中,字的长度为32位,而在8位/16位处理器体系结构中,字的长度一般为16位。

半字(Half-Word):在ARM体系结构中,半字的长度为16位,与8位/16位处理器体系结构中字的长度一致。
字节(Byte):在ARM体系结构和8位/16位处理器体系结构中,字节的长度均为8位。
ARM指令字对齐:32位地址对应的地址空间是2

32

个8位字节,若初始地址为0x00000000,按字对齐下一条地址应为0x00000004。0x00000000~0x00000003对应的4个8位字节为一个字,0x00000004~0x00000007对应的就是下一个字。所以地址的bits[1:0]=0b00.也就是要能够被4整除。
半字对齐:就是能够被2整除,地址的bits[0]=0b0。
时间: 2024-10-05 04:31:21

(转)ARM体系中字、半字和字节,ARM指令字对齐半字对齐的相关文章

ARM体系的异常中断

在ARM体系中,通常有3种方式控制处理器的流程  1:在正常执行过程中,每执行一条ARM指令,程序计数器寄存器PC的值加四个字节,在每执行一条Thumb指令,程序计数器寄存器PC的值加两个字节,整个过程是按照顺序执行的 2:通过跳转指令,程序可以跳转到指定的地址标号进行执行,或者跳转到特定的子程序进行执行,其中B指令用于执行跳转操作,BL指令用于执行跳转操作的同时,保存子程序相应的返回地址,BX在执行跳转操作的同时,分居目标地址的最低位,可以将程序切换到THumb状态,BLX执行上述三个操作 3

大脸猫讲逆向之ARM汇编中PC寄存器详解

i春秋作家:v4ever 近日,在研究一些开源native层hook方案的实现方式,并据此对ARM汇编层中容易出问题的一些地方做了整理,以便后来人能有从中有所收获并应用于现实问题中.当然,文中许多介绍参考了许多零散的文章,本文重点工作在于对相关概念的整理收集,并按相对合理顺序引出后文中对hook技术中的一些难点的解读. Android平台大多采用了ARM架构的CPU,而ARM属RISC,与X86架构的处理器有不同的特征,本文讲介绍ARM中不容易理解的PC寄存器各种问题,包括ARM流水线.PC寄存

存储器格式是个大问题----ARM体系的存储系统

      ARM处理器采用冯诺依曼结构,即指令和数据共用一条32位的数据总线,只有装载.保存和交换指令可以访问存储器中的数据.    ARM处理器将存储器看作是一个从0开始的线性连续递增的字节集合.eg. 字节0-3保存第一个存储的字,字节4-7保存第二个存储的字,依次类推.    地址空间:ARM结构使用232个8位字节地址空间,字节地址的排列从0~232-1.    存储器格式:    1)小端格式存储系统:记忆口诀 “小对小,高高低低”    在小端格式存储系统中,一个字当中最低地址的字

软件和硬件都是对生活的高度抽象---论中断控制(ARM体系编程)

不同的芯片体系设计在集成电路系统设计阶段其实都遵循大体一致的设计思想,芯片设计发展那么多年,真正为人所熟知的就是X86架构和ARM架构,当然还有日渐没落的MIPS,其他都是一些简单的控制器芯片体系.而硬件模块设计又是高度抽象于现实需求,很多时候,X86.ARM和MIPS只有底层寄存器和指令级别的差异,对于软件驱动基本是一致的.本文论及ARM体系的中断控制,以基于Cortex A8的S5PV210为例.中断是一种异步工作机制,也是嵌入式处理器的一个核心工作机制,对于实时操作系统来说必不可少. 1.

关于按字寻址和按字节寻址的理解

  我们先从一道简单的问题说起!      设有一个1MB容量的存储器,字长32位,问:按字节编址,字编址的寻址范围以及各自的寻址范围大小?       如果按字节编址,则                       1MB = 2^20B                       1字节=1B=8bit                       2^20B/1B = 2^20       地址范围为0~(2^20)-1,也就是说需要二十根地址线才能完成对1MB空间的编码,所以地址寄存器为2

linux netlink套接字实现类似ss命令 ,统计套接字以及TCP信息

参考了 ss的源代码 以及 netlink相关资料:http://blog.csdn.net/scdxmoe/article/details/27711205 实现结果为: gcc netlink_dig_530_7.c -o netlink_dig_530_7 ./netlink_dig_530_7 state      family     l.addr     l.port       r.addr     r.rport LISTEN     AF_INET   localhost  

套接字编程相关函数(2:TCP套接字编程相关函数)

1. 基本TCP客户/服务器程序的套接字函数 2. socket函数 为了执行网络I/O,一个进程必须做的第一件事就是调用socket函数,指定期望的通信协议类型.其定义如下: #include <sys/socket.h> int socket(int family, int type, int protocol); // 返回:若成功则返回非负描述符,若失败则返回-1 其中:family参数指明协议族,它是图4-2中所示的某个常值.该参数也往往被称为协议域. type指明套接字类型,它是图

ARM系统中函数调用过程中的参数传递-转

在 嵌入式软件编程中,经常会用到函数调用,之前在学习如何在C语言中嵌入汇编时有了解到C语言之前的参数调用是使用寄存器R0传递第一个参数,R1传递到第 二个..一直到R3传递第四个参数.但是实际上有时可能传递的参数非常多,超过8个,或是参数中有浮点数之类,参数也会超过4个寄存器,对于超出的部份并 不使用R4,而是使用堆栈的方式,但具体是如何的方式很多网站就没了下文了. 对于ARM体系来说,不同语言撰写的函数之间相互调用(mix calls)遵循的是 ATPCS(ARM-Thumb Procedur

沟通是项目管理知识体系中的九大知识领域之一

项目管理要素有:范围.时间.成本.质量.人力.风险.采购.沟通.在项目管理中,沟通是一个软指标,其所起的作用不好量化,沟通对项目的影响往往也是隐形的.项目沟通管理是现代项目管理知识体系中的九大知识领域之一,项目沟通管理在成功所必须的因素-人.想法和信息之间提供了一个关键性连接. 沟通对项目的成功,尤其是IT项目的成功非常重要.本文就围绕沟通的重要意义.项目干系人.沟通对效率的影响.沟通的关键要素这几方面展开一些探讨,最后结合高职外语教学.综合测评平台项目,对沟通在小组软件开发过程中的应用进行案例