第3章 ARM寻址方式与指令系统概要.ppt

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

处理器模式 处理器7种模式 处理器模式 特权模式 处理器模式 异常模式 处理器模式 用户和系统模式 通用寄存器寄存器 简介 在ARM7TDMI处理器内部有37个用户可见的寄存器。 在不同的工作模式和处理器状态下,程序员可以访问的寄存器也不尽相同。 ARM状态各模式下的寄存器 ARM状态各模式下的寄存器 ARM状态各模式下可以访问的寄存器 一般的通用寄存器 一般的通用寄存器 一般的通用寄存器 一般的通用寄存器 一般的通用寄存器 堆栈指针寄存器R13(SP) 链接寄存器R14(LR) 内部寄存器 R14(LR)寄存器与子程序调用 内部寄存器 R14寄存器与异常发生 异常发生时,程序要跳转至异常服务程序,对返回地址的处理与子程序调用类似,都是由硬件完成的。区别在于有些异常有一个小常量的偏移。 内部寄存器 R14寄存器注意要点 当发生异常嵌套时,这些异常之间可能会发生冲突。 例如:如果用户在用户模式下执行程序时发生了IRQ中断,用户模式寄存器不会被破坏。但是如果允许在IRQ模式下的中断处理程序重新使能IRQ中断,并且发生了嵌套的IRQ中断时,外部中断处理程序保存在R14_irq中的任何值都将被嵌套中断的返回地址所覆盖。 内部寄存器 R14寄存器注意要点: 内部寄存器 R14寄存器注意要点: 程序计数器R15(PC) 内部寄存器 读R15的限制: 内部寄存器 读R15的限制 内部寄存器 内部寄存器 写R15的限制: 程序状态寄存器CPSR 内部寄存器 ARM状态和Thumb状态之间寄存器的关系 Thumb状态寄存器在Arm状态寄存器上的映射 内部寄存器 程序状态寄存器 程序状态寄存器 程序状态寄存器 程序状态寄存器 程序状态寄存器 程序状态寄存器 程序状态寄存器 程序状态寄存器 程序状态寄存器 程序状态寄存器 CPSR模式位设置表 程序状态寄存器 例1:将存储器中的连续数据装载到寄存器 PRE mem32[0x80018]=0x03, mem32[0x80014]=0x02, mem32[0x80010]=0x01, r0=0 r1=0 r2=0 r3=0执行指令: LDMIA r0!, {r1-r3} POST r0=0x0008001c, r1=0 r2=0 r3=0例2:完成一个存储器数据块拷贝 注:r9——存放源数据的起始地址 r10——存放目标起始地址 r11——存放源结束地址 loop LDMIA r9!, {r0-r7} ;装载32字节并更新r9指针 STMIA r10!, {r0-r7} ;存储32字节并更新r10指针 CMP r9, r11 ;是否到达结束地址 BNE loop ;不相等跳转 SWP 在寄存器和存储器之间,由一次存储器读和一次存储器写组成的原子操作。完成一个字节或字的交换。 可用作信号量 不能由armcc编译产生,必须使用汇编器。 SWP指令应用示例 Spin MOV r1, =semaphore MOV r2, #1 SWP r3, r2, [r1] CMP r3, #1 BEQ spin 注:信号量指向的单元是0或1,如果为1,则表示该服务被另一个过程使用,程序继续循环,直至为0 3.3.4程序状态寄存器访问指令 程序状态寄存器访问指令(MRS, MSR) MRS 程序状态寄存器到通用寄存器的数据传送指令 MSR 通用寄存器到程序状态寄存器的数据传送指令 PSR 传送指令 MRS和MSR允许传送CPSR / SPSR中的内容到/从一个通用寄存器中。 语法: MRS{cond} Rd,psr ; Rd = psr MSR{cond} psr[_fields],Rm ; psr[_fields] = Rm 在这里: psr = CPSR or SPSR [_fields] = ‘fsxc’的任意组合 也允许送一个立即数到 psr_fields MSR{cond} psr_fields,#Immediate 用户模式下,所有位均可以被读取,但只有条件标志位 (_)可被写。 3.3.5 协处理器指令 协处理器

文档评论(0)

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

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

1亿VIP精品文档

相关文档