资源描述:
《嵌入式arm汇编指令实验》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、**学院实验报告系别:计算机科学与技术专业:计算机科学与技术(网络工程方向)班级:****姓名(学号):************课程名称:嵌入式软件开发实验项目:实验一ARM汇编指令实验实验类型:验证型指导老师:*****实验地点:硬件实验室实验时间:2016年5月4日一、实验目的(1)通过实验掌握使用idm/stm、b、b1等质量完成较为复杂的存储区访问和程序分支。(2)学习使用条件码,加强对CPSR的认识。二、实验设备(1)硬件:PC(2)软件:μVision3IDEforARM集成开发环境。三、实验内容(1)熟悉开发环境的使用并完成一块存储区的复制。(2)完成分支程序的设计,要
2、求判断参数,根据不同参数,调用不同的子程序。四、实验操作步骤(1)建立文件夹命名为Asm2_1,建立一个新的工程命名为AsmTest2_1(2)编辑输入源代码,保存文件为asm_code1.s(3)在Projectworkspace工作区中右击target1àSourceGroup1,在弹出菜单中选择“AddfiletoGroup‘SourceGroup1’”,在随后弹出的文件选择对话框中,选择刚才建立的源文件asm_code1.s(4)把光盘CodeChapter4Asm2_1目录中的DebugINRam.ini文件复制到KeilARMExamplesEduKit24
3、10Asm2_1目录下。选择菜单项ProjectàOptionfortarget…,将弹出工程设置对话框。在这个工程里只需把Linker选项页的配置对话框中的R/WBase改为0x30000000即可。(5)选择菜单项ProjectàBuildtarget或快捷键F7,生成目标代码。(6)选择菜单项DebugàStart/StopDebugSession或快捷键Ctrl+F5,即可进入调试模式。这里使用的是μVision3IDE中的软件仿真器。(7)选择菜单项Debugàrun或快捷键F5,即可运行代码;在memory窗口中,观察地址0x30000058~0x30000094的内容
4、,与地址0x300000a8~0x300000E4的内容。(8)单步执行程序并观察和记录寄存器与memory的值的变化,注意观察步骤(7)中地址的内容变化,当执行stmfd、ldmfd、stmia指令的时候,注意观察其后面参数所指地址段或寄存器段的内容变化。五、实验参考程序GLOBALReset_Handler第3页共3页areastart,code,readwriteentrycode32numEQU20;/*Setnumberofwordstobecopied*/Reset_Handlerldrr0,=src;/*r0=pointertosourceblock*/ldrr1,=d
5、st;/*r1=pointertodestinationblock*/movr2,#num;/*r2=numberofwordstocopy*/ldrsp,=0x30200000;/*setupstackpointer(r13)*/blockcopymovsr3,r2,LSR#3;/*numberofeightwordmultiples*/beqcopywords;/*lessthaneightwordstomove?*/stmfdsp!,{r4-r11};/*savesomeworkingregisters*/octcopyldmiar0!,{r4-r11};/*load8word
6、sfromthesource*/stmiar1!,{r4-r11};/*andputthematthedestination*/subsr3,r3,#1;/*decrementthecounter*/bneoctcopy;/*...copymore*/ldmfdsp!,{r4-r11};/*don'tneedthesenow-restoreoriginals*/copywordsandsr2,r2,#7;/*numberofoddwordstocopy*/beqstop;/*Nowordslefttocopy?*/wordcopyldrr3,[r0],#4;/*awordfromth
7、esource*/strr3,[r1],#4;/*storeawordtothedestination*/subsr2,r2,#1;/*decrementthecounter*/bnewordcopy;/*...copymore*/stopbstop;ltorg;srcdcd1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,1,2,3,4dstdcd0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0end六、实验结