ARM处理器指令系统.ppt

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

ARM处理器指令系统 本讲内容 ARM处理器指令集概述(1) ARM处理器指令集概述(2) ARM处理器指令集概述(3) 指令语法格式 opcode 指令助记符,如ADD {cond} 指令执行的条件 {S} 决定指令的操作是否影响CPSR Rd 目标寄存器 Rn 包含第一个操作数的寄存器 shifter_operand 第二个操作数 ARM指令编码格式 指令的条件执行 当前程序状态寄存器CPSR 当前程序状态寄存器CPSR 指令的条件码 指令条件码一览 ARM指令的寻址方式(1) ARM指令的寻址方式(2) ARM指令的寻址方式(3) ARM指令的寻址方式(4) ARM指令的寻址方式(5) ARM指令的寻址方式(6) ARM指令的寻址方式(7) ARM指令的寻址方式(8) ARM指令的寻址方式(9) ARM指令的寻址方式(10) 跳转指令(1) 跳转指令(2) 跳转指令(3) 跳转指令(4) 数据处理指令 数据运算指令(1) 数据运算指令(2) 数据运算指令(3) 灵活的第二操作数形式 (1) 灵活的第二操作数形式 (2) 灵活的第二操作数形式 (3) 灵活的第二操作数形式 (4) 灵活的第二操作数形式 (5) R15 (PC) 的使用规则 前导零计数指令 乘法指令(1) 乘法指令(2) 乘法指令一览 程序状态寄存器CPSR|SPSR处理指令 (1) 程序状态寄存器CPSR|SPSR处理指令(2) 加载/存储指令(load/store)(1) 加载/存储指令(load/store)(2) 加载/存储指令(load/store)(3) 加载/存储指令(load/store)(4) 加载/存储指令(load/store)(5) 加载/存储指令(load/store)(6) 加载/存储指令(load/store)(7) 加载/存储指令(load/store)(8) 加载/存储指令(load/store)(9) 加载/存储指令(load/store)(10) 加载/存储指令(load/store)(11) 加载/存储指令(load/store)(12) 加载/存储指令(load/store)(13) 加载/存储指令(load/store)(14) ARM协处理器指令(1) ARM协处理器指令(2) ARM协处理器指令(3) 异常产生指令 一个汇编程序的例子 Thumb指令集(1) Thumb指令集(2) Thumb指令集(3) Thumb指令集(4) Thumb指令集(5) Thumb指令集(6) 子程序调用 … BL function … Function ;子程序 …. …. MOV PC,LR ;子程序返回 条件执行 Function ;子程序,求最大公约 CMP R0,R1 ;比较a和b SUBGT R0,R0,R1 ;if (ab)a=a-b SUBLT R1,R1,R0 ;if (ab)b=b-a BNE function ;if (a!=b)返回 MOV PC,LR ;返回 条件判断 条件判断: CMP R0,#0 ;判断R0是否等于0 CMPNE R1,#1 ;如果R0!=0,判断R1?1 ADDEQ R2,R3,R4 ;R0=0或R1=1时,R2=R3+R4 循环 MOV R0, #loopcount Loop …. SUBS R0,R0,#1 BNE loop ARM汇编设计基础 ARM汇编 伪操作 对源程序进行汇编期间处理,而不是直接由计算机执行的指令 伪指令(宏指令) 并非真正的指令,而是一段独立的程序代码;在源程序被汇编时,每个宏被展开,用宏定义体取代宏指令。也是通过伪操作定义的。 ARM汇编预定义的寄存器 ARM汇编预定义的状态、浮点、协处理器 定义的程序状态寄存器名 cpsr和CPSR spsr和SPSR 定义的浮点寄存器名 f0-f7 F0-F7 定义的协处理器名 p0-p15 c0-c15 ARM汇编预定义的内置变量 内置变量举例 内置变量不能用SETA、SETL、SETS等指示词来设置,用于条件表达式中,例 IF {ARCHITECTURE} = “4T” …… 符号定义伪操作 全局变量定义 GBLA-声明一个全局算术变量,并初始化为0 GBLL-声明一个全局逻辑变量,并初始化为{FALSE} GBLS-声明一个全局串变量,并初始化为空串“” 局部变量定义 定义类似全局变量 作用范围为包含该局部变量的宏代码的一个实例。 例: LCLS err err SETS “error no: ” 变量赋值伪操作 SETA伪操作给一个算术变量赋值 SETL伪操作给一个逻辑变量赋值 SETS伪操作给一个串变量赋值 符号定义

文档评论(0)

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

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

1亿VIP精品文档

相关文档