嵌入式系统实践上机实践报告--Thumb汇编指令和ARM工作模式.docx
《嵌入式系统实践上机实践报告--Thumb汇编指令和ARM工作模式.docx》由会员分享,可在线阅读,更多相关《嵌入式系统实践上机实践报告--Thumb汇编指令和ARM工作模式.docx(6页珍藏版)》请在课桌文档上搜索。
1、上机实践成绩: 创新实践成绩: 上机实践日期:上机实践时间:2学时计算机科学技术系上机实践报告课程名称:嵌入式系统实践年级:指导教师:姓名:上机实践名称:ThUmb汇编指令和学号:ARM工作模式上机实践编号:组号:1一、实验目的1. 掌握ARM处理器的ThUmb指令使用方法;2. 学会使用msr/mrs指令实现ARM处理器工作模式的切换;3. 掌握Id中如何使用命令行指定代码段起始地址;二、实验设备1. 硬件:EmbestEDUKIT-IIIPC机2. 软件:EmbestIDEforARM三、实验内容1. 使用THUMB汇编语言,完成基本reg/mem访问,以及简单的算术/逻辑运算。2. 使用
2、THUMB汇编语言,完成较为复杂的程序分支,push/pop,领会立即数大小的限制,并体会ARM-THMB的区别。3. 编写程序从ARM状态切换到ThUnlb,在ARU状态下把R2赋值为0x12345678,在ThUnlb状态下把R2赋值为0x87654321,分别观察两个状态下的CPSR、SPSR的值和各个标志位。4. 通过ARM汇编指令,在各种处理器模式下切换并观察各种模式下寄存器的区别;掌握ARM不同模式的进入与推出。四、实验原理1 .ARM处理器工作状态ARM处理器共有两种工作状态: ARM:32位,这种状态下执行字对准的ARM指令; Thumb:16位,这种状态下执行半字对准的ThU
3、mb指令在Thumb状态下,程序计数器PC使用位1选择另一个半字。注意:ARMThumb之间状态的切换不影响处理器的模式或寄存器的内容。ARM处理器在两种工作状态之间可以切换。1)进入ThUmb状态。当操作数寄存器的状态位0为1时,执行BX指令进入ThUmb状态。如果处理器在Thilmb状态进入异常,则当异常处理(IRQ,FIQ,ndef,Abort和SWI)返回时,自动切换到ThUmb状态。2)进入ARM状态。当操作数寄存器的状态位0为0时,执行BX指令进入ARM状态。处理器进行异常处理(IRQ,FIQ,Undef,Abort和SWI)。在此情况下,把PC放入异常模式链接寄存器中。从异常向量
4、地址开始执行也可以进入ARM状态。2 Thumb状态的寄存器集Thumb状态下的寄存器集是ARM状态下寄存器集的子集。程序员可以直接访问8个通用的寄存器(ROR7),PCzSPzLR和CPSP。每一种特权模式都有一组SP,LR和SPSR。 Thumb状态的R0R7与ARM状态的R0R7是一致的。 Thumb状态的CPSR和SPSR与ARM状态的CPSR和SPSR是一致的。 Thumb状态的SP映射到ARM状态的Rl3。Thumb状态的LR映射到ARM状态的RI4。Thumb状态的PC映射到ARM状态的PC(R15)Thumb寄存器与ARM寄存器的关系如图3-7所示。Tlnunb状态ARM状态R
5、ORO;低寄存器,高寄存器ARlRlR2R2R3R3R4R4R5R5R6R6R7R7R8R9RlORllR12SPSP(R13)LR4LR(RM)PCPC(R15)CPSRCPSRSPSRSPSR图3-7寄存器状态图3本实验涉及到的as伪操作.code1632code伪操作用于选择当前汇编指令的指令集。参数16选择ThUmb指令集,参数32选择ARM指令集。语法格式.code1632.thumb同.code16o.arm同.code32o.align对齐方式:通过添加填充字节使当前位置满足一定的对齐方式。语法格式.alignalignment)rfill,max其中alignment用于指定对
6、齐方式,可能的取值为2的次累,缺省为4。ARM7基础实验教程fill是填充内容,缺省用O填充。max是填充字节数最大值,如果填充字节超过max,就不进行对齐.示例.align4 .ARM处理器模式除用户模式外的其他模式称为特权模式。它们可以自由的访问系统资源和改变模式。其中的5种称为异常模式,即 FIQ(FastInterruptrequest); IRQ(InterruptReQuest); 管理(SUPerViSor); 中止(AbOrt); 未定义(Undefined)。当特定的异常出现时,进入相应的模式。每种模式都有某些附加的寄存器,以避免异常出现时用户模式的状态不可靠。剩下的模式是系
7、统模式。仅ARM体系结构V4以及以上的版本有该模式。不能由于任何异常而进入该模式。它与用户模式有完全相同的寄存器,然而它是特权模式,不受用户模式的限制。它供需要访问系统资源的操作系统任务使用,但希望避免使用与异常模式有关的附加寄存器。避免使用附加寄存器保证了当任何异常出现时,都不会使任务的状态不可靠。5 .程序状态寄存器前一节提到的程序状态寄存器CPSR和SPSR包含了条件码标志,中断禁止位,当前处理器模式以及其他状态和控制信息。每种异常模式都有一个程序状态保存寄存器SPSR。当异常出现时,SPSR用于保密CPSR的状态。CPSR和SPSR的格式如下:313029282726876543210
8、NZCVQDNM(RAZ)IFTMMMMM工)条件码标志:N,Z,C,V大多数指令可以检测这些条件码标志以决定程序指令如何执行2)控制位:最低8位I,F,T和M位用作控制位。当异常出现时改变控制位。当处理器在特权模式下也可以由软件改变。 中断禁止位:1置1则禁止IRQ中断;F置1则禁止FIQ中断。 T位:T=O指示ARM执行;T=I指示ThUmb执行。在这些体系结构的系统中,可自由的使用能在ARM和ThUmb状态之间切换的指令。 模式位:MO,Ml,M2,M3和M4(M4:0)是模式位.这些位决定处理器的工作模式。3)其他位程序状态寄存器的其他位保留,用作以后的扩展。6.本实验涉及到的Id命令
9、行参数-Ttextorg使用Org作为输出文件的text段的起始地址。Org必须是一个十六进制的数。五、实验步骤1 .实验A1)参考3.1.5小节实验实验A步骤1建立一个新的工程,命名为ThUmbCode:2)参考3.1.5小节实验实验A步骤2和实验参考程序编辑输入源代码,编辑完毕后,保存文件为ThUmbCode.s;3)选择PrOjeCt菜单中AddTOProjectFiles命令,或单击工程管理窗口中的相应右键菜单命令,弹出文件选择对话框,在工程目录下选择刚才建立的源文件ThUmbCOde.s;4)参考3.1.5小节实验A的步骤4进行相应设置;5)参考3.1.5小节实验A的步骤5生成目标代
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 系统 实践 上机 报告 Thumb 汇编 指令 ARM 工作 模式
链接地址:https://www.desk33.com/p-850500.html