ARM处理器寄存器和汇编指令系统..doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ARM处理器寄存器和汇编指令系统.

ARM处理器寄存器和汇编指令系统 1.ARM的处理器模式 ARM体系结构支持7种处理器模式,分别是:用户、FIQ、IRQ、管理、中止(abort)、未定义和系统模式。除了用户模式外,其余都称之为特权模式。除了用户和系统模式外,其余都称之为异常模式。 ? 2.ARM的存储器组织 ARM处理器总共有37个寄存器:包括31个通用寄存器、包括程序计数器(PC)、和6个状态寄存器。这些寄存器在不同模式下,不能被同时看到,有些名称是重叠的。分为三类:不分组寄存器,分组寄存器和程序计数器 1)不分组寄存器R0~R7 所有的处理模式下、它们都是访问同一个寄存器,因此只有8个不分组寄存器。 2)分组寄存器R8~R14 每一个访问的物理寄存器取决于当前的处理器模式,有些是共用的,而有些事分离的。具体可以查询相关资料。 R13就是堆栈寄存器SP,而R14就是链接寄存器LR 3)程序计数器R15 在ARM状态PC的位[1:0]为0,而在Thumb状态,位[0]为0. 4)程序状态寄存器CPSR和程序状态保存寄存器SPSR CPSR只有一个,代表了当前的程序状态。而每个异常模式都有独立的一个SPSR,用于保存CPSR的状态。 131??30??29??28???????????????????????????????? 8??7??6??5??? 4??? 3???2???1???0? 2?N???Z??C????V???????????DNM(RAZ)??????????????I??F??T???M4?M3? M2?M1?M0 ? 3.ARM的常用汇编指令 1)基本寻址方式 包括有寄存器寻址、立即寻址、寄存器移位寻址、寄存器间寻址、变址寻址、多寄存器寻址、堆栈寻址、块复制寻址和相对寻址 2)条件执行 几乎所有的ARM指令都可以包含一个可选的条件码,句法中以{cond}来标识。可用的条件码如下面所示。几乎所有的ARM数据处理指令均可以根据执行结果来选择是否更新条件码标志,即在指令中包含后缀S。 ?1操作码[31:28]??????助记符后缀???标?志?????????????? ???含义 ?20000?????????????????EQ????????? ? ?Z置位???????????? ????相等 ?30001???????????????? NE?????????? ??Z清零???????????? ????不等 ?40010???????????????? CS/HS???? ???C置位?????????????? ??大于或等于(无符号=) ?50011???????????????? CC/LO???? ???C清零??????????????? ?小于(无符号) ?60100?????????????? ? MI?????????? ??N置位????????????????? 负 ?70101???????????????? PL????????? ???N清零????????????????? 正或零 ?80110???????????????? VS????????? ??V置位????????????????? 溢出 ?90111???????????????? VC????????? ??V清零????????????????? 未溢出 101000???????????????? HI????????? ??C置位且Z清零????????大于(无符号) 111001???????????????? LS?????????? ?C清零或Z置位????????小于或等于(无符号=) 121010??????????????? GE??????????? ?N和V相同???????????? 带符号= 131011?????????????? ?LT??????????? ?N和V不同????????????? 带符号 141100??????????????? GT????????????Z清零且N和V相同?????带符号 151101??????????????? LE???????????? Z置位或N和V不同?????带符号= 161110??????????????? AL??????????? ?任何???????????????????? 总是(通常省略)? ? 3)存储器访问指令 3.1)LDR和STR(字与无符号字节)语法如下 1op?{cond}?{B}?{T}?Rd,?[Rn] 2op?{cond}?{B}?Rd,?[Rn,?Flexoffset]?{!}? //前索引偏移 3op?{cond}?{B}?Rd,?label 4op?{cond}?{B}?{T}?Rd,?[Rn],?Flexof

文档评论(0)

dashewan + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档