- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
课程介绍
从51到ARM
PAGE 27
基本概念
从51到ARM
ARM不是单片机
ARM与51的性能比较
以ARM为核的单片机
ARM处理器基础
ARM处理器的数据格式
处理器模式
ARM内部寄存器
异常
ARM7TDMI简介
概述
结构和框图
ARM处理器的寻址方式
异常和中断
概述
复位异常
未定义指令异常
软件中断异常
预取指令中止异常
数据中止异常
中断请求IRQ异常
快速中断FIQ请求异常
中断源和中断优先级
异常中断的进入和退出
ARM指令集
北航 徐英慧《ARM9嵌入式系统设计——基于S3C2410与Linux》
P.90:32位ARM指令集由13种基本指令类型组成,分为4大类:
3种类型的存储器访问指令,控制存储器和寄存器之间的数据传送。一类用于优化的灵活寻址;一类用于快速上下文切换;第3类用于数据交换。
3种类型的数据处理指令,使用片内ALU、桶形移位器和乘法器针对31个寄存器完成高速数据处理操作。
4种类型的分支指令,控制程序的流程、指令优先级以及ARM代码和Thumb代码的切换。
3种类型的协处理器指令,专门用于控制外部协处理器。这些指令以开放和统一的方式扩展了指令集的片外功能。
P.112:16位的Thumb指令集是ARM指令集的子集,分为4个功能组:
存储器访问指令
数据处理指令
转移指令
中断和断点指令
P.197:基于ARM的汇编语言语句格式
ARM汇编语言的指令格式包括3部分: [标号] [指令或伪指令] [;注释]
3部分都是可选的;(每行可以只有标号,可以只有指令,可以只有注释)
标号必须顶格书写;(后面不能加冒号!)
所有指令都不允许顶格书写;
标识符大小写有别,一条指令中助记符和语句标号不允许大小写混合;
反斜杠是续行符。
概述
指令集是一组二进制代码集。
指令设计是先有二进制代码,然后再构造助记符。
一个优秀的指令集应该做到:
丰富的指令,满足所有设计要求。
尽可能精简,指令代码不要重叠。
指令代码应该得到最大限度的应用,尽量减少无效信息。(代码长度对应的编码得到充分利用!)
51单片机指令是8位编码长度。
ARM指令是32位编码长度,因此信息量更大、功能更强。
例如: ADDEQ R5,R7,R3,LSL#2
这是一条有条件加法指令,含义是:如果Z=1(说明上面最后一条影响状态标志的指令的操作结果是0),则把R3中的数据逻辑左移2位(相当于乘4),再与R7相加,结果赋值给R5。
这条指令的机器码是:
0000 0000 1000 0111 0101 0001 0000 0011
条件码 ADD指令编码 R7源寄存器 R5目标寄存器 移位类型和位数 第2操作寄存器R3
再例如: LDMIA R5,{R2,R7,R8}
这是一条多寄存器操作指令,含义是:以R5中的数据为地址,把这个地址的数据赋给R2,把R5下一个地址的数据赋给R7,再下一个地址的数据赋给R8。这是无条件执行的指令。
这条指令的机器码是:
1110 100 01001 0101 0000 0001 1000 0100
条件码 LDM指令编码 其他 基址地址R5 R8 R7 R2
从以上两个例子可以看出,ARM指令的32位可以包含更多的信息,所以每条指令所能完成的工作内容也就很多。比如多寄存器操作指令,最多可以一次完成对16个寄存器的操作,这在51单片机则需要16条指令。
从上面例子还可以看出,ARM指令的32位编码分成几个部分。
表5.1 ARM指令集的代码表
Cond
0
0
I
Opcode
S
Rn
Rd
Operand2
数据处理及PSR传送
Cond
0
0
0
0
0
0
A
S
Rd
Rn
Rs
1
0
0
1
Rm
乘法
Cond
0
0
0
0
1
U
A
S
RdHi
RdLo
Rn
1
0
0
1
Rm
长乘法
Cond
0
0
0
1
0
B
0
0
Rn
Rd
0
0
0
0
1
0
0
1
Rm
数据交换
Cond
0
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
Rm
分支和交换
Cond
0
0
0
P
U
0
W
L
Rn
Rd
0
0
0
0
1
S
H
1
Rm
半字传送寄存器偏移
Cond
0
0
0
P
U
1
W
L
Rn
Rd
Offset
1
S
H
1
Offset
半字传送立即数偏移
Cond
0
1
I
P
U
B
W
L
Rn
Rd
Offset
数据传送
Cond
0
您可能关注的文档
最近下载
- 光伏电站的运行与维护规范.pdf
- 危化企业加油加气站双重预防机制手册.doc VIP
- 《首批重点监管的危险化学品名录》.pdf VIP
- 设计的创造性思维和工程思维 课件 高中通用技术粤科版 必修 技术与设计 .ppt VIP
- 兄弟 HL-4150CDN 4570CDW 4150 4570 彩色激光打印机中文维修手册.pdf VIP
- 医护人员职业安全与防护.pptx VIP
- 常用量具、检具测量基础知识试题(附答案).docx VIP
- 建设工程造价鉴定规范.pdf VIP
- 2025年中国石化校园招聘确认笔试参考题库附带答案详解.docx
- 现代家政学概论-ppt6.1第一节服装搭配.pptx VIP
文档评论(0)