网站大量收购独家精品文档,联系QQ:2885784924

第3章2_ARM指令系统.ppt

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

ARM指令集_分支指令;3.2.1 分支并且转换状态指令(BX—branch and exchange) 分支并且转换状态指令BX,在指令中指定了一个Rn寄存器,将Rn内容拷贝到PC,同时使PC[0]=0; 把Rn[0]的值送CPSR的T位。如果Rn[0]=1,则T=1,将处理器状态转换成Thumb状态,把目标地址处的代码解释为Thumb代码; 如果Rn[0]=0,则T=0,将处理器状态转换成ARM状态,把目标地址处的代码解释为ARM代码。 ;⒉ 指令汇编格式: BX{cond} Rn ⒊ 使用举例 【例3.1】 处理器从执行ARM指令代码处分支到标号为Goto_THUMB处,并且执行Thumb 指令代码,然后又返回到Back_ARM处,执行ARM指令代码。;;假定处理器当前正在执行ARM指令;3.2.2 分支、分支并且连接指令(B、BL—branch、branch with link) 分支指令B使程序分支(转移)到确定的地址处执行程序。 分支并且连接指令BL除了使程序分支(转移)到确定的地址处执行程序外,还要保存返回地址到LR寄存器,即把BL指令的下一条指令的地址送LR。使用BL指令可以实现子程序调用。 上述两条指令分支目标地址处的指令均应该属于ARM指令集,不允许分支到Thumb指令处。;立即跳转指令B 指令格式 B{cond} expression 指令功能 跳转到指定的地址执行程序 指令说明 当程序执行到一条B指令,ARM处理器将立即跳转到指令的目标地址。 实例 B WAIT ;跳转到WAIT标号处 B 0x1234 ;跳转到绝对地址0x1234处;带链接的跳转指令BL 指令格式 BL{cond} label 指令功能 将下一条指令的地址复制到R14(即LR)链接寄存器中,然后跳转到指定地址运行程序。 实例 BL DELAY ;跳转到DELAY标号处,同时将 ; PC的值保存到LR寄存器中 ;⒊ 使用举例 【例3.2】 使用分支指令使部分代码循环5次。;3.2.3 ARM指令集_数据处理指令; 算术逻辑操作指令通常对指定的两个寄存器(或1个寄存器、1个立即数)进行操作,结果存到第3个寄存器, CPSR中的条件码可能被保护或由指令的结果设置,取决于指令中bit[20]的值。比较指令TEQ、TST、CMP和CMN,通常对指定的两个寄存器(或1个寄存器,1个立即数)进行比较,比较结果不保存到寄存器,只会把指令的bit[20]置1,影响CPSR中的条件码标志。 ;图3.2;数据传送指令 指令格式 MOV {cond}{S} Rd,op2 指令功能 在寄存器之间传送数据 ,或寄存器与第二操作数之间传送数据 。 说明 Rd为目标寄存器,operand2为源操作数 ,S 项决定指令的操作是否影响CPSR中条件标志位的值 实例 MOV R5,R2 MOVS R3,R1, LSL#2;算术逻辑运算指令 指令格式 ADD {cond}{S} Rd,Rn,op2 指令功能 加法运算指令,用寄存器Rn加op2,结果保存到Rd中。 说明 操作数1是寄存器,操作数2可以是寄存器,被移位的寄存器,或一个立即数。 实例 ADD R3,R1,R2 ADD R3,R1,R2,LSL#2 ;算术逻辑运算指令 指令格式 AND {cond}{S} Rd,Rn,op2 指令功能 逻辑与操作指令 ,在两个操作数上进行逻辑与运算,并把结果放置到目标寄存器中。 说明 操作数1应是一个寄存器,操作数2可以是一个寄存器,被移位的寄存器或一个立即数。该指令常用于屏蔽操作数1的某些位。 实例 ANDS R0,R0,#0x01;R0=R00x01取出最低位数据 ;比较指令 指令格式 CMP {cond} Rn, op2 指令功能 比较指令。CMP指令用于把一个寄存器的内容和另一个寄存器的内容或立即数进行比较,同时更新CPSR中条件标志位的值。 说明 该指令进行一次减法运算,但不存储结果,只是刷新程序条件标志位。 实例 CMP R1,R0 ;将R1的值与R0的值相减,并根据结果设置CPSR的标志位 ;测试指令 指令格式 TST {cond} Rn, op2 指令功能 位测试指令。TST把寄存器Rn和后面的第2操作数按位进行逻辑与运算,结果丢失,刷新程序条件标志位 说明 该指令常用来测试指定位 。 实例 TST R0,#0x01 ; 判断R0的最低位是否为0;移位指令 ARM微处理器支持数据的各种移位操作,移位操作在ARM指令集中不作为单独的指令使用,它只能作为指令格式中的一个字段,在汇编语言中表示为指令中的选项。

文档评论(0)

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

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

1亿VIP精品文档

相关文档