第3章ARM资料.pdf

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

基于ARM的嵌入式软件开发基础  嵌入式程序一般都采用汇编语言、C(或C++)语言以 及汇编语言与C语言的混合编程。为了更好的进行 基于ARM 的嵌入式软件开发,本章密切结合第四章 具体开发例程,对基于ARM 的嵌入式软件开发中所 涉及到的基础内容进行了简述。  通过对本章的学习,使大家能够掌握基于ARM嵌入 式程序设计的基本知识。 基于ARM的嵌入式软件开发基础 ARM指令集 Thumb指令集 ARM汇编语言程序设计基础 嵌入式C语言程序设计基础 嵌入式C语言程序设计技巧 C与汇编语言混合编程 3.1 ARM指令集  基本内容: 3.1.1 ARM指令集概述 3.1.2 ARM寻址方式 3.1.3 ARM指令的详细介绍  学习目的:  对ARM指令集有初步认知  如何使用ARM指令集 3.1.1 ARM指令集概述 ARM指令集的特点: 由于ARM 处理器是基于精简指令集原理设计的,其指 令集及译码机制相对较简单。 ARM指令集是32位的,程序的启动都是从ARM指令集 开始,包括所有的异常中断都自动转化为ARM状态。 所有的ARM指令集都可以是有条件执行的。 本节从指令集编码、条件执行、指令分类及指令格式 等几个方面对于ARM指令集进行概述。 一ARM指令集编码 ARM指令集编码特点: ARM指令集是以32位二进制编码的方式给出的。 大部分的指令编码中定义了第一操作数、第二操作数、 目的操作数、条件标志影响位以及每条指令所对应的 不同功能实现的二进制位。 每条32位ARM指令都具有不同的二进制编码方式来和 不同的指令功能相对应。 二条件执行 在ARM 的指令编码表中,统一占用编码的最高四位[31: 28]来表示“条件码。每种“条件码”用两个英文缩写 字符表示它的含义,可以添加在指令助记符的后面表 示指令执行时必须要满足的条件。 ARM指令根据CPSR 中的条件位自动判断是否执行指 令,在条件满足时,指令执行;否则指令被忽略(可 以认为执行了一条NOP伪指令)。 程序状态寄存器CPSR和程序状态保存寄存器SPSR (1)条件码标志:N 、Z 、C、V N——在结果是带符号的二进制补码情况下,如果结果为负数,则N=1 ;如果结 果为非负数,则N=0 。 Z——如果结果为0 ,则Z=1 ;如果结果为非0 ,则Z=0 。 C——它的设置分以下几种情况; 对于加法指令(包括比较指令CMN ),如果产生进位,则C=1 ;否则C=0 。 对于减法指令(包括比较指令CMP ),如果产生借位,则C=0 ;否则C=1 。 对于有移位操作的非加减法指令,C为移位操作中最后移出位的值。 对于其他指令,C通常不变。 V——它的设置也分为以下两种情况: 对于加减法指令,在操作数和结果是带符号的整数时,如果发生溢出,则V=1 ; 如果无溢出发生,则V=0 。 对于其他指令,V通常不发生变化。 二条件执行 例如,数据传送指令MOV加上条件后缀EQ后成为 MOVEQ ,表示“相等则执行传送”,“不相等则本 条指令不执行”,即只有当CPRS 中的Z标志为“1”时, 才会发生数据传送。 下表列举了四位条件码“cond”的16种编码中能为用户 所使用的15种,而编码“1111”为系统暂不使用的保留编 码。 三指令分类及指令格式 指令分类简述 ARM指令集是Load/Store型的,只能通过Load/Store 指令实现对系统存储器的访问,而其它类型的指令是 基于处理器内部的寄存器完成操作的。ARM指令集可 以分为六大类:数据处理指令、Load/Store指令、跳 转指令、程序状态寄存器处理指令、协处理器指令和 异常产生指令。 三指令分类及指令格式 指令格式 ARM指令使用的基本格式如下: 〈opcode〉{ 〈cond〉}{S} 〈Rd〉, 〈Rn〉{, 〈operand2〉} 指令格式使用举例  LDR R0,[R1] ;读取R1地址上的存储单元内容给R0,执行条件AL 。  BEQ DATAEVEN ;条件执行分支指令,执行条件EQ,即相等则跳转; 到DATAEVEN 。  ADDS R2 ,R

文档评论(0)

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

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

版权声明书
用户编号:5024214302000003

1亿VIP精品文档

相关文档