- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[s3c2440中文翻译第三章
本科毕业设计(论文)外文翻译译文
学生姓名:
院 (系):
专业班级:
指导教师:
完成日期: 20 年 月 日
3 ARM 指令集
指令集概述
此章描述了 ARM920T 核心的 ARM 指令集。
格式概述
ARM 指令集如下图所示。
图 3-1. ARM指令格式 注意:
一些指令码未被定义,但并不一定会导致带来未定义指令陷阱(Undefined Instruction Trap),例如一个乘法指 令的位[6]变为了 1。不要使用这些没有被定义的指令,在未来的 ARM 实施中可能会改变其功能。
指令概述
表 3-1. ARM 指令集
助记符 说明 操作 ADC 带进位加法 Rd:= Rn + Op2 + 进位 ADD 加法 Rd:= Rn + Op2 AND 逻辑与 Rd:= Rn 逻辑与 Op2 B 分支跳转 R15:= 地址 BIC 位清零 Rd:= Rn 逻辑与非 Op2 BL 带连接分支跳转 R14:= R15,R15:= 地址 BX 分支和状态切换跳转 R15:= Rn,T 位:= Rn[0] CDP 协处理器数据处理 (指定协处理器) CMN 负数比较 CPSR 状态标志位:= Rn + Op2 CMP 比较 CPSR 状态标志位:= Rn - Op2 EOR 逻辑异或 Rd:= (Rn 逻辑与非 Op2) 逻辑或(Op2 逻辑与非 Rn) LDC 加载字数据,从存储器到协处理器 协处理器加载 LDM 加载字数据,从存储器到多寄存器 栈操作(Pop) LDR 加载字数据,从存储器到寄存器 Rd:= (地址) MCR 移动字数据,从 CPU 寄存器到协处理器寄存器 cRn:= rRn {opcRm} MLA 乘加 Rd:= (Rm × Rs) + Rn MOV 移动寄存器中数据或常量 Rd:= Op2 MRC 移动字器数,从协处理器寄存据到 CPU 寄存器 Rn:= cRn {opcRm} MRS 移动状态/标志位,从 PSR 到寄存器 Rn:= PSR MSR 移动状态/标志位,从寄存器数据到 PSR PSR:= Rm MUL 乘法 Rd:= Rm × Rs MVN 移动寄存器取反后的数据 Rd:= 0xFFFFFFFF 逻辑异或 Op2 ORR 逻辑或 Rd:= Rn 逻辑或 Op2 RSB 逆向减法 Rd:= Op2 - Rn RSC 带进位逆向减法 Rd:= Op2 - Rn - 1 + 进位 SBC 带进位减法 Rd:= Rn - Op2 - 1 + 进位 STC 存储字数据,从协处理器寄存器到存储器 地址:= CRn STM 多字数据存储 栈操作(Push) STR 存储字数据,寄存器到存储器 地址:= Rd SUB 减法 Rd:= Rn - Op2 SWI 软件中断 操作系统调用 SWP 寄存器与存储器内容交换 Rd:= [Rn],[Rn]:= Rm TEQ 按位测试相等 CPSR 标志位:= Rn 逻辑异或 Op2 TST 位测试 CPSR 标志位:= Rn 逻辑与 Op2 条件字段
在 ARM 状态,所有的指令都可以按照 CPSR 状态码和指令条件字段的状态来有条件地执行。此字段(位[31:28]) 确定了在什么情况下哪一个指令被执行。如果 C,N,Z 和 V 标志位的状态符合字段的条件码,将执行指令,否则 忽略不执行。
有 16 种可能的条件,每种表示为在指令助记符后附加两个字符后缀。例如,一个分支(汇编语言中的 B)跳 转指令变成 BEQ 为“如果相等则分支跳转”,这意味着只有 Z 标志位被置位了才会执行分支跳转。
在实际应用当中,将会使用到 15 种不同的条件:如表 3-2 所列,保留第 16 种(1111),并且一定不要使用。
表 3-2. 条件码概述 码 助记 标志位 含义 0000 EQ Z 置位 相等 0001 NE Z 清零 不相等 0010 CS C 置位 无符号大于或等于 0011 CC C 清零 无符号小雨 0100 MI N 置位 负数 0101 PL N 清零 正数或零 0110 VS V 置位 溢出 0111 VC V 清零 未溢出 1000 HI C 置位并且 Z 清零 无符号大于 1001 LS C 清零或 Z 置位 无符号小于或等于 1010 GE N 等于 V 大于或等于
文档评论(0)