第5节ARM指令.pptVIP

  • 5
  • 0
  • 约1.63万字
  • 约 88页
  • 2018-05-03 发布于四川
  • 举报
第5节ARM指令.ppt

ARM指令系统简介 ARM指令系统的重要性 ARM处理器指令的特点 指令系统所包涵的主要内容 1ARM指令系统的重要性 无操作系统下开发与学习(裸板) 裸机开发----启动代码 BOOTLOADER 基于操作系统下的开发与学习 BOOTLOADER移植 操作系统的移植 2ARM处理器指令的特点 指令的类别  RISC 指令长度 长度固定。 32位(ARM状态)OR16位(THUMB指令) 条件执行 上一条指令的运行结果可以作为下一条执行与否的条件 条件执行及标志位 ARM指令可以通过添加适当的条件码后缀来达到条件执行的目的。 这样可以提高代码密度,减少分支跳转指令数目,提高性能。 CMP r3,#0      CMP r3,#0 BEQ skip       ADDNE r0,r1,r2 ADD r0,r1,r2 skip 默认情况下,数据处理指令不影响程序状态寄存器的条件码标志位,但可以选择通过添加“S”来影响标志位。 CMP不需要增加 “S”就可改变相应的标志位。 loop … SUBS r1,r1,#1 BNE loop 指令所包涵的主要内容 学习ARM指令与伪指令 伪指令的作用 ARM指令与伪指令的区别 熟悉指令集,可以读、写ARM汇编程序 简单的ARM程序 条件码标志 任何数据处理指令都可以设置条件码 (N, Z, V, and C) 适用于除比较操作外的所有数据处理指令 特殊的请求必须在汇编语言中实现,这种请求是通过把”S”增加到选择代码中指定的 算术操作设置所有的标志位 (N, Z, C, and V) 逻辑和移位操作设置 N and Z 如何实现 将0xffffffff赋予r0 mov r0,0xffffffff ? mvn r0,#0 完成R0与0xffffff00比较 cmp r0, 0xffffff00 ? cmn r0,#0xff      2加载/存储指令 5程序状态寄存器访问指令 .GLOBAL MMU_DisableICache MMU_DisableICache: mrc p15,0,r0,c1,c0,0 bic r0,r0,#R1_I mcr p15,0,r0,c1,c0,0 MOV_PC_LR         结束 STC指令 STC指令的格式为: STC{条件}{L} 协处理器编码,源寄存器,[目的寄存器] STC指令用于将源寄存器中的字数据传送到目的寄存器所指向的存储器中,若协处理器不能成功完成传送操作,则产生未定义指令异常。其中,{L}选项表示指令为长读取操作,如用于双精度数据的传输。 STC P3,C4,[R0] MCR指令 MCR指令的格式为: MCR{条件} 协处理器编码,协处理器操作码1,源寄存器,目的寄存器1,目的寄存器2,协处理器操作码2。 MCR指令用于将ARM处理器寄存器中的数据传送到协处理器寄存器中,若协处理器不能成功完成操作,则产生未定义指令异常。其中协处理器操作码1和协处理器操作码2为协处理器将要执行的操作,源寄存器为ARM处理器的寄存器,目的寄存器1和目的寄存器2均为协处理器的寄存器。 MCR P3,3,R0,C4,C5,6 MRC指令 MRC指令的格式为: MRC{条件} 协处理器编码,协处理器操作码1,目的寄存器,源寄存器1,源寄存器2,协处理器操作码2。 MRC指令用于将协处理器寄存器中的数据传送到ARM处理器寄存器中,若协处理器不能成功完成操作,则产生未定义指令异常。其中协处理器操作码1和协处理器操作码2为协处理器将要执行的操作,目的寄存器为ARM处理器的寄存器,源寄存器1和源寄存器2均为协处理器的寄存器。 MRC P3,3,R0,C4,C5,6 1伪指令在汇编编译器对源程序进行汇编处理时被替换成对应的ARM或者THUMB指令(序列)。 2这些助记符与指令系统的助记符不同,没有相对应的操作码,通常称这些特殊指令助记符为伪指令,他们所完成的操作称为伪操作。伪指令在源程序中的作用是为完成汇编程序作各种准备工作的,这些伪指令仅在汇编过程中起作用,一旦汇编结束,伪指令的使命就完成 PC指针取值的特点? 与51单片机ADD指令的不同? B指令何时用到? * SWI: 0x8 LDM(或STM)指令 LDM(或STM)指令的格式为: LDM(或STM){条件}{类型} 基址寄存器{!},寄存器列表{∧} LDM(或STM)指令用于从由基址寄存器

文档评论(0)

1亿VIP精品文档

相关文档