郑州航空工业管理学院嵌入式系统实验报告2013–2014第2学期赵成,张克新院系: 姓名: 专业: 学号: 电子通信工程系2014年3月制实验一 ARM体系结构与编程方法一、实验目的了解ARM9S3C2410A嵌入式微处理器芯片的体系结构,熟悉ARM微处理器的工作模式、指令状态、寄存器组及异常中断的概念,掌握ARM指令系统,。二、、环境配置及工程项目的建立;.ARM汇编语言程序设计(参考附录A):两个寄存器值相加;LDR、STR指令操作;使用多寄存器传送指令进行数据复制;使用查表法实现程序跳转;使用BX指令切换处理器状态;微处理器工作模式切换;三、预备知识了解ARM嵌入式微处理器芯片的体系结构及指令体系;熟悉汇编语言及可编程微处理器的程序设计方法。四、:Intel(R)Pentium(R)及以上;内存:1GB及以上;实验设备:ARM2410-S嵌入式开发平台,J-LinkV8仿真器;:MicrosoftWindowsXPProfessionalServicePack2;集成开发环境:ARMDeveloperSuite(ADS)。五、。(ARM可执行映像)类型的工程,工程目标配置为Debug;接着,还需要对工程进行目标设置、语言设置及链接器设置;最后,配置仿真环境为ARMUL仿真方式。.写出ARM汇编语言的最简程序结构,然后在代码段中实现两个寄存器值的加法运算,给出运算部分相应指令的注释。;文件名:,CODE,READONLY;声明代码段XTFENTRY;标识程序入口CODE32;声明32位ARM指令SARTMOVR1,#1;设置参数MOVR2,#2ADDR0,R1,R2;R0<---R1+R2HALTBHALT;死循环END;、STR指令的汇编程序,并在关键语句后面给出相应的注释。AREAXTF,CODE,READONLY;声明代码段XTFENTRY;标示程序入口CODE32;声明32位ARM指令STARTLDRR0,=1;加载数据LDRR1,=2LDRR3,=ADDR_1;载符号地址ADDR2,R0,R1;R2<---R0+R1STRR2,[R3];R2--->[R3];数据空间定义AREAData_1,DATA,ALIGN=2ADDR_1DCD0END;结束4.“使用多寄存器传送指令进行数据复制”汇编程序分析。LDRR0,=SrcData;执行后,R0的值是标号SrcData的地址LDRR1,=DstData;执行后,R1的值是标号DstDatad的地址LDMIAR0,{R2-R9};LDMIA中的指令后缀IA表示IncreaseAfter,即每次传送后地址加4,[R0]-->R2,[R0+4]-->R3,…,[R0+28]-->R9STMIAR1,{R2-R9};执行后,程序实现的功能是[R1]<--R2,[R1+4]<--R3,…,[R1+28]<--“使用查表法实现程序跳转”的汇编程序中,指令LDRPC,[PC,R2]采用的是什么寻址方式?作为基址的寄存器PC的值是多少?作为指令指针的PC又指向哪条指令?这个指令与流水线执行的关系是什么?(选做)答:1)基址加变址寻址;2)PC<----[PC+R2],即PC中存放的是当前PC值加上寄存器R2中的内容形成的有效地址中的操作数;3)对于ARM指令集,PC总是只想当前指令的下两条指令,即PC的值为当前指令的地址值加上8个字节(每条指令占4个字节)。“使用BX指令切换处理器状态”汇编程序实验,回答ARM指令与Thumb指令之间是如何实现状态切换的?AXDDebugger调试环境中的哪个寄存器指示了ARM微处理器当前的指令状态?同时,在程序中添加从Thumb指令切换到ARM指令的代码。(选做)答:1)BX指令使用寄存器作为参数,当32位操作数寄存器的第0位的值为1时,执行BX指令后,ARM处理器从16位半字节对齐ARM指令状态切换到32位字对齐Thumb指令状态;当32位操作数寄存器的第0位为0时,ARM处理器从Thumb指令状态切换到32位ARM指令状态。CPSR的value值为nzcvqIFt_SVC时为ARM32指令状态;为nzcvqIFT_SVC时为Thumb16指令状态AREAXTF,CODE,READONLY;声明代码段XTFENTRY;标识程序入口CODE32;声明32位AR
ARM嵌入式系统实验报告 来自淘豆网m.daumloan.com转载请标明出处.