第二章ARM体系结构及指令系统.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2.3.2.6 相对寻址 与基址变址寻址方式相类似,相对寻址以程序计数器PC的当前值为基地址,指令中的地址标号作为偏移量,将两者相加之后得到操作数的有效地址。以下程序段完成子程序的调用和返回,跳转指令BL采用了相对寻址方式: BL NEXT ;跳转到子程序NEXT处执行 …… NEXT …… MOV PC,LR ;从子程序返回 2.3.2.7 堆栈寻址 ARM微处理器支持这四种类型的堆栈工作方式,即: - 满递增堆栈: 堆栈指针指向最后压入的数据,且 由 低地址向高地址生成。 - 满递减堆栈: 堆栈指针指向最后压入的数据,且 由高地址向低地址生成。 - 空递增堆栈:堆栈指针指向下一个将要放入数据的 空位置,且由低地址向高地址生成。 - 空递减堆栈:堆栈指针指向下一个将要放入数据的 空位置,且由高地址向低地址生成。 2.3.3 ARM指令集 2.3 s3c2410的硬件结构 实验箱硬件概述 片选CS分布 地址空间分布-补充 关于CPLD扩展控制的LED、步进电机和AD/DA地址空间的说明: 他们均共用nGCS2(0x1000,0000),是由CPLD内部的一个译码逻辑来实现在这BANK2的128MB地址空间里面的分割的: 地址线 地址 用途 A(2--0) 0x1000,0000 LED1(最右)数值寄存器 0x1000,0001 LED2数值寄存器(8bit) 0x1000,0002 LED3数值寄存器 0x1000,0003 LED4数值寄存器 0x1000,0004 LED5数值寄存器 0x1000,0005 LED6数值寄存器 0x1000,0006 步进电机速度寄存器(4bit) A(5--3) 0x1000,0008 DA数字信号锁存器 0x1000,0010 AD通道选择寄存器 0x1000,0020 AD转换寄存器 0x1000,0030 DA转换寄存器 中断分布 关于中断向量号的定义,可参见: kernel/include/asm/arch/irqs.h #define IRQ_EINT0 0 /* External interrupt 0 */ #define IRQ_EINT1 1 /* External interrupt 1 */ #define IRQ_EINT2 2 /* External interrupt 2 */ #define IRQ_EINT3 3 /* External interrupt 3 */ #define IRQ_EINT4_7 4 /* External interrupt 4 ~ 7 */ #define IRQ_EINT8_23 5 /* External interrupt 8 ~ 23 */ 可见EINT4_7共享中断向量号4,EINT8_23共享中断向量号5,至于这些共享的中断如何区别,则是通过读取中断的EINTPEN寄存器来做判断的。 * 访问THUMB状态下的高位寄存器(Hiregisters): 在Thumb状态下,高位寄存器R8~R15并不是标准寄存器集的一部分,但可使用汇编语言程序受限制的访问这些寄存器,将其用作快速的暂存器。使用带特殊变量的MOV指令,数据可以在低位寄存器和高位寄存器之间进行传送;高位寄存器的值可以使用CMP和ADD指令进行比较或加上低位寄存器中的值。 程序状态寄存器 ARM体系结构包含一个当前程序状态寄存器(CPSR)和五个备份的程序状态寄存器(SPSRs)。备份的程序状态寄存器用来进行异常处理,其功能包括: ─ 保存ALU中的当前操作信息 ─ 控制允许和禁止中断 ─ 设置处理器的运行模式 程序状态寄存器的每一位的安排如图2.6所示: 条件码标志(Condition Code Flags) N、Z、C、V均为条件码标志位。它们的内容可被算术或逻辑运算的结果所改变,并且可以决定某条指令是否被执行。 在ARM状态下,绝大多数的指令都是有条件执行的。 在Thumb状态下,仅有分支指令是有条件执行的。 控制位 PSR的低8位(包括I、F、T和M[4:0])称为控制位,当发生异常时这些位可以被改变。如果处理器运行特权模式

文档评论(0)

精品家园 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档