实验八_ARM处理器工作模式与堆栈指针实验.docVIP

实验八_ARM处理器工作模式与堆栈指针实验.doc

  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文档。上传文档
查看更多
实验八_ARM处理器工作模式与堆栈指针实验

实验八 ARM处理器工作模式与堆栈指针设置实验 1 实验目的 (1) 通过实验掌握学会使用MSR和MRS指令实现ARM工作模式的切换,观察不同模式下的寄存器,尤其是状态寄存器,加深对CPU的理解; (2) 掌握ARM堆栈指针SP的设置方法和意义,在设置好的堆栈中压入适当的数据,并使用寄存器窗口、存储器窗口观察。 2 实验内容 (1) 主要内容 ARM9处理器支持7中工作运行模式(如表1) 表1. ARM9运行模式 处理器模式 处理器模式描述 CPSR寄存器的M[4:0]的值 用户模式usr ARM处理器正常程序执行模式 0b10000 快速中断模式fiq 用于高速数据传输或通道处理 0b10001 外部中断模式irq 用于通用的中断处理 0b10010 管理模式svc 操作系统使用的保护模式 0b10011 数据访问终止模式abt 当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护 0b10111 未定义指令终止模式und 当未定义的指令执行时进入该模式 0b11011 系统模式sys 运行具有特权的操作系统任务 0b11111 特权模式:又称非用户模式。是指除用户模式以外的6种模式。在这些模式下程序可以访问所有的系统资源,也可以任意地进行处理器模式切换。用户模式下是不允许模式切换的。 异常模式:是指除用户模式和系统模式以外地5种模式,常用于处理中断。异常模式有: FIQ(Fast Interrupt ReQuest) IRQ(Interrupt ReQuest) 管理svc(Supervisor) 中止abt(Abort) 未定义und(Undefined) 在特定地异常出现时,进入相应的模式。某种模式都有附加的寄存器,以避免出现异常时用户模式的状态不可靠。 在软件的控制下可以改变模式,外部中断和异常也可以引起模式发生改变。 大多数应用程序在用户模式下执行。当处理器工作在用户模式时,正在执行的程序不能访问某些被保护的处理器资源,也不能改变模式,除非异常(Exception)发生。这允许适当编写操作系统来控制系统资源的使用。 ARM9体系结构的异常类型和异常处理模式(如表2) 表2 异常类型 进入模式 地址(异常向量) 优先级 复位 管理模式 01(最高) 未定义指令 未定义模式 06(最低) 软件中断 管理模式 06(最低) 指令预取中止 中止模式 0x0000000C 5 数据中止 中止模式 02 外部中断请求 外部中断请求模式 04 快速中断请求 快速中断请求模式 0x0000001C 3 ② 状态寄存器CPSR/SPSR以及对其进行的访问 状态寄存器CPSR和SPSR:包含了条件码标志,中断禁止位,当前处理器模式以及其它状态和控制信息。每种异常都有一个程序状态保存寄存器SPSR,当异常出现时SPSR用于保存CPSR的状态值。CPSR和SPSR的格式如下: N Z C V Q 预留 I F T M4 M3 M2 M1 M0 状态位:位31-28依次为N、Z、C、V分别表示符号位Negative、零位Zero、进位位Carry和溢出位Overflow。 控制位:中断控制位I(b7)、快速中断控制位F(b6)和ARM/Thumb控制位。M4、M3、M2、M1、M0(M[4:0])是模式控制位,反映和决定ARM处理器的工作模式。 对CPSR寄存器的访问 程序状态寄存器到通用寄存器传送指令格式 MRS{条件码} Op1, CPSR/SPSR ; Op1←CPSR/SPSR 说明: Op1是通用寄存器;CPSR是当前程序状态寄存器。 通用寄存器到程序状态寄存器传送指令格式 MSR{条件码} CPSR/SPSR ,Op2_Domain, ; CPSR/SPSR ←Op2 说明: Op2是通用寄存器;CPSR是当前程序状态寄存器。 域Domain用于设置CPSP/SPSR中需要操作的位,32位的程序状态寄存器被分为4个域: 最高8位,即b31-b24为条件标志位域,用f表示。在指令中的形式为CPSR_f。 次高8位,即b23~b16为状态位域,用s表示。目前备用。 次低8位,即b18~b8为扩展域,用x表示。目前备用。 最低8位,即b7~b0为控制位域,用c表示。在指令中的形式为CPSR_c。 (2) 主要完成的工作 ①编写一个汇编程序,程序的入口地址为0即进入到系统的启动入口Reset,此时系统进入到管理模式,这时就可以进行模式的切换,设置各模式下的SP指针,并写入数据在相应的模式状态下观察SP指针值和相应的存储单元内容; 或通过

文档评论(0)

haihang2017 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档