嵌入式系统刘彦文第3章
3.使用举例 CDP p2,11,c2,c3,c4 CDPEQ p3,6,c2,c3,c4,2 ‘ ‘ ‘ ‘ 第三章 ARM920T指令系统 3.2.14 协处理器数据传送指令(LDC、STC) ‘ ‘ ‘ ‘ 第三章 ARM920T指令系统 1.指令编码格式 ‘ ‘ ‘ ‘ 第三章 ARM920T指令系统 2.指令含义 LDC:将存储器的一个字或多个字读出送协处理器寄存器 STC:将协处理器一个或多个寄存器的内容送存储器 ‘ ‘ ‘ ‘ 第三章 ARM920T指令系统 2.指令含义 1)协处理器域 CP#:标识协处理器号 2)寻址方式 3)地址对齐 4)R15的使用 ‘ ‘ ‘ ‘ 第三章 ARM920T指令系统 3.指令汇编格式 LDC|STC{cond}{L} p#,cd,Address ‘ ‘ ‘ ‘ 第三章 ARM920T指令系统 4.使用举例 ‘ ‘ ‘ ‘ 第三章 ARM920T指令系统 3.2.15 协处理器传送指令(MRC、MCR) ‘ ‘ ‘ ‘ 第三章 ARM920T指令系统 1.指令含义 ‘ ‘ ‘ ‘ 第三章 ARM920T指令系统 2.指令汇编格式 MCR|MRC{cond} p#,expression1,Rd,cn,cm{,expression2} ‘ ‘ ‘ ‘ 第三章 ARM920T指令系统 3.使用举例 ‘ ‘ ‘ ‘ 第三章 ARM920T指令系统 1.指令编码格式 ‘ ‘ ‘ ‘ 第三章 ARM920T指令系统 2.寻址方式 1)寄存器列表 bit[15:0]中16位域每一位对应一个寄存器 bit[0]=1,表示R0被传送 bit[0]=0,表示R0不被传送 bit[15:0]不能为全0 ‘ ‘ ‘ ‘ 第三章 ARM920T指令系统 2.寻址方式 2)寻址方式 传送地址由Rn决定 编号低的寄存器传送到地址低的存储器 3)地址对齐 ‘ ‘ ‘ ‘ 第三章 ARM920T指令系统 2.寻址方式 4)S位的使用 (1)列表中有R15,且S被设置的LDM指令 STEP1:R15被装入 STEP2:SPSR_mode转入CPSR ‘ ‘ ‘ ‘ 第三章 ARM920T指令系统 2.寻址方式 4)S位的使用 (2)列表中有R15,且S被设置的STM指令 传送的是用户方式寄存器组 用于程序切换时,保存用户方式状态 ‘ ‘ ‘ ‘ 第三章 ARM920T指令系统 2.寻址方式 4)S位的使用 (3)列表中没有R15,且S被设置 传送的是用户方式寄存器组 用于程序切换时,保存和恢复用户方式状态 ‘ ‘ ‘ ‘ 第三章 ARM920T指令系统 2.寻址方式 5)关于使用R15作为基址寄存器 不应该使用R15作为基址寄存器 ‘ ‘ ‘ ‘ 第三章 ARM920T指令系统 2.寻址方式 6)基址寄存器在寄存器列表中 当指定了回写方式,在指令的第二个周期结束时,基址寄存器被回写 ‘ ‘ ‘ ‘ 第三章 ARM920T指令系统 2.寻址方式 6)基址寄存器在寄存器列表中 指定了回写方式时对于STM指令: 基址寄存器是第一个被保存的,保存的是没被修改过的值 基址寄存器是二个或以后的寄存器,则保存的是修改过的值 ‘ ‘ ‘ ‘ 第三章 ARM920T指令系统 2.寻址方式 6)基址寄存器在寄存器列表中 指定了回写方式时对于LDM指令: 总是用对应存储器单元的值装入并覆盖寄存器列表中基址寄存器的值 ‘ ‘ ‘ ‘ 第三章 ARM920T指令系统 3.指令汇编格式 LDM|STM{cond}FD|ED|FA|EA|IA|IB|DA|DB 如果使用堆栈指针寄存器R13作为基址寄存器,使用FD、ED、FA、EA ‘ ‘ ‘ ‘ 第三章 ARM920T指令系统 3.指令汇编格式 F:满堆栈,指针指向棧中最后一项 E:空堆栈,指针指向棧中下一个可用空间 A:递增,堆栈向存储器地址增大方向生长 D:递减,堆栈向存储器地址减小方向生长 ‘ ‘ ‘ ‘ 第三章 ARM920T指令系统 3.指令汇编格式 如果不使用R13作为基址寄存器使用后缀IA、IB、DA、DB I表示增量,D表示减量 A表示后索引,B表示先索引 ‘ ‘ ‘ ‘ 第三章 ARM920T指令系统 4.使用举例 ‘ ‘ ‘ ‘ 第三章 ARM920T指令系统 3.2.10 单个数据交换指令(SWP) ‘ ‘ ‘ ‘ 第三章 ARM920T指令系统 1.指令含义 包含两个操作: 一个存储器读 一个存储器写 以上两个操作被绑在一起,不可分割 ‘ ‘ ‘ ‘ 第三章 ARM920T指令系统 1.指令含义 交换指令中的Rd、Rn或Rm不允许指定R15 ‘
原创力文档

文档评论(0)