ARM基本指令实验报告书.

合集下载

arm实验报告最终版

arm实验报告最终版

ARM与嵌入式技术实验报告专业班级:10通信工程1班姓名:万洁学号:100103011125实验日期:2013年5月28日指导老师:郑汉麟1、 通过实验掌握ARM 指令的特点和寻址方式;2、 掌握简单的ARM 汇编语言的程序设计;3、 了解集成开发环境 Embest IDE 及其开发软件的应用;、实验环境Embest IDE 应用于嵌入式软件开发的新一代图形化的集成开发环境,它包括一套完备 的面向嵌入式系统的开发和调试工具。

其开发软件 Embest IDE for ARM 是集编辑器、编译 器、调试器、工程管理器( projectma nager )于一体的高度集成的窗口环境,用户可以在Embest IDE 集成开发环境中创建工程、编辑文件、编译、链接、运行,以及调试嵌入式应 用程序。

三、实验步骤1)新建工程:运行Embest IDE 集成开发环境,选择菜单项 File 宀New Workspace ,如图一,系统弹出一个对话框,键入文件名“ wj ”,如图二,点击 0K 按钮。

将创建一个新工程,并同时创 建一个与工程名相同的工作区。

此时在工作区窗口将打开该工作区和工程 .。

(老师提醒:不要放入Bin 文件夹中)■ Emb«t QE Pre 亠 Educat「販]£dii_VwwBuid frtbug D if** Qri+W 诊 Open-"Qrl*O2)建立源文件:点击菜单项 File T New ,如图三,系统弹出一个新的文本编辑窗,输入源文件代码。

编辑完后,保存文件“ wj.s ”后缀,如图三,四。

Hr*Open Workspace.・图一■■ rflJO IUU rl jil rd f rfl,rlClop: h Ho. .end图tut vUrl:3)添加源文件:选择菜单项Project T Add To Project Files,在工程目录下选择刚才建立的源文件.s 后缀文件,如图五,图六,图七。

arm实验1 汇编指令实验.

arm实验1 汇编指令实验.

实验1 汇编指令实验一、实验目的:1.掌握ADS1.2集成开发环境及ARMulator软件仿真2.了解ARM汇编指令用法,并能够编写简单的汇编程序3.掌握指令的条件执行,掌握LDR/STR指令,完成存储器的访问4.掌握使用多寄存器传送指令进行数据复制二、实验设备:1.硬件PC机SeaARM5.02.软件ADS1.2、AXD三、实验内容:1.用LDR指令读取0x40003100地址上的数据,将该数据加1,若结果大于10,把0写入原地址, 否则使用STR指令将结果写入原地址。

2.用SrcData表示源数据地址,DstData表示目标地址,用LDMIA指令加载32字节(即8个字)数据到寄存器R2~R9;用STMIA 存储寄存器R2~R9到目标地址。

四、实验步骤1.启动ADS1.2,使用ARM Executable Image工程模板建立一个工程。

如Test12.建立汇编源文件Tset1.s3.设置工程连接地址R0 Base 0x40000000,RW Base 0x40003000。

设置调试入口地址Image Entry point 为0x40000000。

4.编译、连接工程,选择Project Debug ,启动AXD软件仿真调试。

5.打开寄存器窗口(ProcessorRegister,监视R0、R1的值,,打开存储器观察窗口(Memory)设置观察地址0x40003100,显示方式为32bit,监测0x40003100上的值。

6.可以单步运行程序,可以设置、取消断点,或者全速运行,停止运行,调试时观察寄存器0x40003100上的值,运行结果见图1。

7.仿照上述步骤1-6做实验内容中第个2题目。

图1 ARM实验内容1的运行结果五、实验参考程序内容1:AREA TEST1, CODE,READONLYENTRYCODE32STARTLDR R1,=COUNTMOV R0,#0STR R0,[R1]LOOPLDR R1,=COUNTLDR R0,[R1]ADD R0,R0,#1CMP R0,#10MOVHS R0,#0STR R0,[R1]B LOOPCOUNT EQU 0X40003100END内容2:AREA TEST2,CODE,READONL YENTRYCODE32START LDR R0,=SrcData ; 设置源数据地址LDR R1,=DstData ; 设置目标地址LDMIA R0,{R2-R9} ; 加载32字节(即8个字)数据到寄存器R2~R9STMIA R1,{R2-R9} ; 存储寄存器R2~R9到目标地址B .AREA Example2_dat, DATA, READWRITESrcData DCD 0, 1, 2, 3, 4, 5, 6, 7DstData SPACE 32END。

ARM汇编指令实验

ARM汇编指令实验

实验1 ARM汇编指令实验1、实验目的:●熟悉ADS开发环境和wiggler调试环境。

●掌握简单的ARM汇编指令的使用方法。

2、实验设备●PC机、JTAG调试板、S3C2410开发板。

3、实验内容●熟悉ARM开发环境的建立。

●使用ARM汇编指令设置GPIO口的相应寄存器,控制LED灯的亮灭。

4、实验原理下面介绍本实验用到的一些汇编指令。

1).LDR/STR指令说明:LDR/STR指令用于加载/存储寄存器。

举例说明:示例:LDR r3,[r0],#4 //从r0表示的地址中读取数据分别存放到r3中,然后将r0加4。

STR r3, [r1],#4 //将r3中的数据保存到r1表示的地址中,然后将r1加4。

LDMIA/STMIA指令说明:LDM/STM指令用于加载/存储多个寄存器,举例示例:LDMIA r0!,{r4---r11}//从r0表示的地址中顺利取出8个字数据分别存放到r4-r11中。

2).程序分支指令B指令说明:B指令为ARM的分支指令,将引起处理器转移到制定标号处执行。

示例:B Label //处理器转移到Label标号处执行BEQ stop//Z标记置位,则跳转到stop标号处执行;否则继续下一条指令BNE octcopy//Z标记清0,则跳转到octcopy标号处执行;否则继续下一条指令3).其他指令SUBS说明:该指令有SUB指令加上S后缀组成,S后缀标志根据执行结果更新条件标志码。

示例:SUBS r3,r3,#1//如果r3等于0,则Z位清0MOVS指令说明:该指令由MOV指令加上后缀S组成,S后缀标志根据执行结果更新条件标志码。

示例:MOVS r3,r2,LSB#3//将r2右移3位即除以8,然后赋值给r3。

5、实验相应寄存器说明GPFCON-端口配置寄存器。

GPFDAT-端口数据寄存器GPFUP-端口上拉电阻使能寄存器6、实验电路图7.实验程序实现利用ARM汇编语言实现跑马灯程序/* asm.s */GPFCON EQU 0x56000050GPFDAT EQU 0x56000054GPFUP EQU 0x56000058EXPORT LEDTESTAREA LEDTESTASM,CODE,READONLY ;该伪指令定义了一个代码段,段名为LEDTESTASM,属性只读LEDTEST;设置GPF4-GPF7为outputldr r0,=GPFCONldr r1,=0x5500str r1,[r0];禁止GPF4-GPF7端口的上拉电阻ldr r0,=GPFUPldr r1,=0xff00str r1,[r0];将数据端口F的数据寄存器的地址赋值给寄存器r2ldr r2,=GPFDAT;跑马灯循环ledloop1ldr r1,=0xf0str r1,[r2] ;使GPF7输出高电平,D9-D12灯会灭bl delay1 ;调用延迟子程序ledloop2ldr r1,=0x0str r1,[r2] ;使GPE7输出低电平 D9-D12灯亮bl delay2 ;调用延迟;延迟程序delay1ldr r3,=0x1ffff ;设置延迟的时间delay3sub r3,r3,#1 ;r3=r3-1cmp r3,#0x0 ;将r3的值与0相比较bne delay3 ;比较的结果不为0(r3不为0),继续调用delay1,否则执行下一条语句b ledloop2mov pc,lr ;返回;延迟程序delay2ldr r3,=0x2ffff ;设置延迟的时间delay4sub r3,r3,#1 ;r3=r3-1cmp r3,#0x0 ;将r3的值与0相比较bne delay4 ;比较的结果不为0(r3不为0),继续调用delay1,否则执行下一条语句b ledloop1mov pc,lr ;返回END ;程序结束符。

实验一 ARM汇编指令实验

实验一 ARM汇编指令实验

大连理工大学软件学院《嵌入式系统原理与设计》实验报告(每组一份,打印)姓名:刘华一学号:201492405 班级:软1411姓名:李军学号:201493076 班级:软日1401实验时间:16年9月30日实验室:嵌入式实验室指导教师:邱铁成绩:实验一:ARM汇编指令一、实验目的和要求1. 熟悉ARM Developer Suite v1.2集成开发环境2.ARM汇编语言指令功能训练二、实验原理和内容RAM是32位体系结构,每个内存单元是32位的,对于64位的数需要两个字才能存储。

题目:熟悉ARM Developer Suite v1.2集成开发环境逐条试验ARM汇编语言指令功能,并观寄存器\存储器的变化三、主要仪器设备及软件编程环境硬件:PC机软件:ARM Developer Suite v1.2集成开发环境,Windows 98/2000/NT/XP四、实验步骤与编程1.打开软件ARM Developer Suite v1.2,选择file中的新建,在project中选择第一个,输入project name2.在同一个界面选择file,建立一个.s文件,打开此文件后就可以在里面进行编写汇编指令3.输入示例代码后,在原有的project对话框中鼠标右键连接到你所建的工程文件下的.s文件,再点击编译。

4.在新弹出的界面中,打开左边的寄存器列表,再点击单步调试,就可以看到每条指令执行时相应寄存器的变化以及相应要执行的下一条指令。

五、实验数据与结果分析数据传送类指令:算数运算类指令:逻辑运算类指令:比较指令:乘法指令:六、讨论、建议由于对于软件尚未熟悉,且windows系统兼容性原因,在开始配置阶段浪费了较多时间,由于时间有限,只是大体练习了一遍,在批量读取及存储方面仍存在较大问题,需要回去后勤加练习。

5_ARM实验报告

5_ARM实验报告

5_ARM实验报告
实验名称:ARM处理器实验报告
实验目的:通过实验掌握ARM处理器的基本结构和工作原理,了解ARM指令的执行过程以及汇编语言编程的基本方法。

实验设备:ARM处理器开发板、电脑、开发软件Keil等。

实验步骤:
1. 准备工作:连接ARM开发板和电脑,打开Keil软件,新建一个工程。

2. 编写程序:在Keil软件中编写一个简单的程序,比如将两个数相加并将结果输出。

3. 编译程序:通过Keil软件进行编译,生成可执行文件。

5.调试程序:在ARM开发板上运行程序,并观察程序的运行结果。

6.分析程序:分析程序的运行过程,了解ARM指令的执行过程和程序的运行逻辑。

实验结果:
通过本次实验,我对ARM处理器的基本结构和工作原理有了更深入的了解。

我了解了ARM指令的执行过程,掌握了汇编语言编程的基本方法。

在实验中,我成功编写了一个简单的程序,并在ARM开发板上成功运行并输出了结果。

总结与反思:
通过本次实验,我对ARM处理器有了更深入的了解,对汇编语言编程也有了更多的实践经验。

我发现在编写程序时需要考虑指令的执行顺序和逻辑关系,需要注意程序的优化和逻辑性。

在今后的学习和工作中,我将继续深入学习ARM处理器的原理和应用,不断提高自己的编程技能和实践能力。

结论:
本次实验让我在实践中掌握了ARM处理器的基本原理和工作方法,提高了自己的实践能力和编程技能。

我将继续学习和实践,不断提高自己在ARM处理器领域的水平,为将来的工作和研究打下坚实的基础。

湖南工业大学ARM实验报告

湖南工业大学ARM实验报告

ARM嵌入式系统原理及应用开发实验报告学院:电气与信息工程学院班级:电子信息1204指导老师:谭会生姓名:学号:实验一:ARM汇编指令使用实验——基本数学/逻辑运算一、实验目的1.初步学会使用ARM ADS / Embest IDE for ARM 开发环境及ARM软件模拟器。

2.通过实验掌握数据传送和基本数学/逻辑运算的ARM汇编指令的使用方法。

二、实验设备1.硬件:PC机。

2.软件:ADS 1.2 / Embest IDE 200X集成开发环境。

三、实验内容熟悉ADS 1.2 / Embest IDE 200X开发环境的使用,使用LDR/STR和MOV等指令访问寄存器或存储单元,实现数据的加法运算。

具体实验参考程序如下:四.实验操作步骤1.新建工程。

先建立一个实验文件夹,如E\ARMSY\armasm1;然后运行Embest IDE 集成开发环境,选择File→New Workspace菜单项,弹出一个对话框,输入工程名armasm1a/armasmlb等相关内容;最后单击OK按钮,将创建一个新工程,并同时创建一个与工程名相同的工作区。

此时在工作区窗口将能打开该工作区和工程。

2.建立源文件。

选择File→New菜单项,弹出一个新的、没有标题的文本编辑窗口,输入光标位于窗口中第一行,按照实验参考程序编辑输入源文件代码。

编辑完后,保存文件armasmla. s。

1)armasmla. s源程序:/* armasm1a.s */.EQU X, 45 /*定义变量X,并赋值为45*/.EQU Y, 64 /*定义变量Y,并赋值为64*/.EQU STACK_TOP, 0X1000 /*定义栈顶0X1000*/.GLOBAL _START.TEXT_START: /*程序代码开始标志*/MOV SP, #STACK_TOPMOV R0, #X /*X的值放入R0*/STR R0, [SP] /*R0的值保存到堆栈*/MOV R0, #Y /*Y的值放入R0*/LDR R1, [SP] /*取堆栈中的数到R1*/ADD R0, R0, R1STR R0, [SP]STOP: B STOP /*程序结束,进入死循环*/.END2).使用ADD/SUB/LSL/LSR/AND/ORR等指令,完成基本数学/逻辑运算。

第四章_ARM指令系统实验

第四章_ARM指令系统实验

第四章ARM指令系统实验实验一、ARM汇编语言程序实验一、实验目的1.掌握ARM7TDMI汇编语言指令的用法,能编写简单的ARM汇编语言程序。

2.掌握指令的条件执行和使用LDR/STR指令完成存储器的访问。

二、实验设备硬件:PC机软件:Windows98/XP/2000系统,ADS1.2集成开发环境三、实验内容使用LDR指令读取0x400031000上的数据,将数据加1,若结果小于10,则使用STR指令把结果写回原地址,若结果大于等于10,则把0写回原地址。

使用ADS1.2软件仿真,单步、全速运行程序,设置断点,打开寄存器窗口(Processor Registers )监视R0、R1的值,打开存储器窗口(Memory )监视0x400031000的值。

四、实验预习要求1.仔细阅读教材第四章中ARM指令系统的内容;2.熟悉ADS1.2工程编辑和AXD调试的内容。

五、实验步骤1.启动ADS1.2,使用ARM Executable Image工程模板建立一个工程,工程名称ADS2。

2.建立ARM汇编源程序LJZ2.S,编写实验程序,然后添加到工程中。

3.设置工程连接地址RO Base 为0x400000000,RW Base 为0x400030000。

设置调试入口地址Image entry point 为0x400000000。

4.编译连接工程,选择[Project]-〉[Debug],启动AXD进行软件仿真调试。

5.打开寄存器窗口((Processor Registers )选择Current项监视R0、R1的值,打开存储器窗口(Memory )设置观察地址为0x400031000,显示方式Size为32位,监视0x400031000的值。

6.可以单步运行程序,可以设置断点/取消断点,或者全速运行程序,停止程序运行,调试时观察寄存器和0x400031000的值,运行结果分别如图4-1到4-7所示。

图4-1 Memory 窗口设置图4-2 Memory 窗口显示格式设置图4-3 Register 窗口设置图4-4 单步调试开始窗口画面图4-5 单步调试第一循环画面图4-6 单步调试第三循环画面图4-7 单步调试第十次循环结果六、实验参考程序程序清单4-1 ARM指令实验程序LJZ2.S; 文件名:LJZ2.S; 功能:使用LDR、STR指令对变量NumCount进行加1操作; 说明:使用ARMulate软件仿真调试NumCount EQU 0x40003100 ; 定义变量NumCountAREA Example2,CODE,READONLYENTRYMAIN LDR R1,=NumCount ;使用LDR伪指令装载NumCount的地址;到R0。

5_ARM实验报告

5_ARM实验报告

5_ARM实验报告[实验报告]实验名称:5_ARM实验实验目的:1.了解ARM架构的特点和基本原理;2.掌握ARM指令集和编程模式;3.学会使用ARM开发工具进行编程和调试;4.实现一个简单的ARM程序并运行。

实验器材:1.ARM开发板;2.电脑;B数据线。

实验步骤:1.搭建开发环境根据实验指导书的步骤,将开发板与电脑连接,安装开发工具和驱动程序。

2.学习ARM指令集和编程模式通过阅读教材和参考资料,了解ARM指令集的基本原理和常用指令。

同时,学习ARM的编程模式,包括程序的加载、运行和调试等。

3.编写ARM程序根据实验要求,编写一个简单的ARM程序。

这个程序可以是一个简单的计算器,或者是一个LED灯的控制程序等。

编写程序时需要注意使用合适的指令和编程模式。

4.编译和烧录程序使用ARM开发工具,将编写好的程序进行编译和烧录。

编译过程会生成一个可执行的二进制文件,烧录过程会将这个二进制文件加载到开发板上。

5.调试并运行程序通过ARM开发工具进行调试,检查程序中可能存在的错误,并进行修正。

调试过程中需要注意程序的执行流程和变量的值等。

调试完成后,运行程序并观察其运行结果。

实验结果与分析:在实验中,我成功地搭建了ARM的开发环境,学习了ARM指令集和编程模式,并编写了一个简单的ARM程序。

经过编译和烧录,我成功地将程序加载到开发板上,并通过调试和运行,验证了程序的正确性。

实验中遇到的问题和解决方法:在编写程序的过程中,我遇到了一些语法错误和逻辑问题。

通过阅读资料、查找文档和与同学的讨论,我解决了这些问题。

在调试的过程中,我还遇到了一些程序运行速度过慢的问题。

通过优化代码和使用合适的编译选项,我解决了这个问题。

实验总结:通过这次实验,我对ARM架构有了更深入的了解,掌握了ARM指令集和编程模式的基本原理和使用方法。

通过编写和调试一个简单的ARM程序,我提高了自己的编程能力和解决问题的能力。

实验还让我明白了实际应用中ARM的重要性,以及它对于现代计算机系统的作用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ARM基本指令实验报告书
ARM基本指令实验报告书1、实验内容或题目●熟悉开发环境的使用并使用ldr/str,mov 等指令访问寄存器或存储单元。

●使用
add/sub/lsl/lsr/and/orr 等指令,完成基本数学/逻辑运算。

2、实验目的与要求●初步学会使用Embest IDE for ARM 开发环境及ARM 软件模拟器;●通过实验掌握简单ARM 汇编指令的使用方法。

3、实验步骤与源程序⑴ 实验步骤1) 新建工程:运行Embest IDE 集成开发环境,选择菜单项File → New Workspace,系统弹出一个对话框,输入相关内容。

点击OK 按钮,将创建一个新工程,并同时创建一个与工程名相同的工作区。

此时在工作区窗口将打开该工作区和工程。

2) 建立源文件:点击菜单项File → New,系统弹出一个新的、没有标题的文本编辑窗,输入光标位于窗口中第一行,按照实验参考程序编辑输入源文件代码。

3) 添加源文件:选择Project → Add To Project → Files 命令,或单击工程管理窗口中的相应右键菜单命令,弹出文件选择对话框,在工程目录下选择刚才建立的源文件asm1_a.s。

4) 基本配置:选择菜单项Project → Settings…或快捷键Alt+F7,弹出工程设置对话框。

在工程设置对话框中,选择Processor 设置对话框,按照图3-2 所示,进行目标板所用处理器的配置。

5) 生成目标代码:选择菜单项Build → Build asm_a 或快捷键F7,生成目标代码。

6) 调试设置:选择菜单项Project → Settings…或快捷键Alt+F7,弹出工程设置对话框。

在工程设置对话框中,选择Remote 设置对话框,按照图3-4 所示对调试设备模块进行设置。

7) 选择Debug 菜单Remote Connect 进行连接软件仿真器,执行Download 命令下载程序,并打开寄存器窗口。

打开memory 窗口,观察地址0x8000~0x801f 的内容,与地址
0xff0~0xfff的内容。

8) 单步执行程序并观察和记录寄存器与memory 的值变化。

9) 结合实验内容和相关资料,观察程序运行,通过实验加深理解ARM 指令的使用。

10)理解和掌握实验后,完成实验练习题。

首先在C盘根目录下找到EmbestIDE文件夹,打开Examples\ARM_Basic\3.1_asm1,这是实验的第一题。

系统用EmbestIDE Pro软件打开此项目。

然后在软件中操作Build-
>Build asm1_a,接着再操作Debug Remote Connect,最后操作Debug Download.便能得出结果。

⑵ 源代码题目一:
0x00008000 mov sp,
#40960x00008004 mov r0,
#450x00008008 str r0,
[sp]0x0000800c mov r0,
#640x00008010 ldr r1,
[sp]0x00008014 add r0, r0,
r10x00008018 str r0, [sp]
stop :0x0000801c b 0x801c题目二:
0x00008000 mov r0,
#450x00008004 mov r0, r0, lsl
#80x00008008 mov r1,
#640x0000800c add r2, r0, r1, lsr
#10x00008010 mov sp,
#40960x00008014 str r2, [sp]毕业论文
/ 论文网
/0x00008024 add r2, r0, r1, lsr #10x00008028 ldr r0,
[sp]0x0000802c mov r1,
#10x00008030 orr r0, r0,
r10x00008034 mov r1,
r20x00008038 add r2, r0, r1, lsr
#1stop :0x0000803c b 0x803c题目三:新建文件,输入书上源代码。

源程序.equ R0, 0x8000 .equ R1,
0x01.equ R2, 0x10.global
_start.text_start: /* code start */ STMIB
R0!,{R1,R2} LDMIA R0!,{R1,R2}stop:.end 4、测试数据与实验结果(可以抓图粘贴)(1)实验指导书3.1a工程程序的功能,程序输出结果,寄存器R0,R1,R2的变化过程(2)实验指导书3.1b工程程序的功能,程序输出结果,寄存器R0,R1,R2的变化过程(3)写出教材P144习题3对应的程序,并得出结果。

(4)写出实验指导书习题1的程序,并得出结果(选做)。

题目一:3.1a程序实现简单加法运算,结果是,,R0:0->45-
>64->109R1:0->45R2:0题目二: 3.1b程序实现简单的算术逻辑运算:R0:0->45->11520->87->11552->11553R1:0->64->1->119R2:0->11552->119->11612
题目三:R0:0->0x8000->0x8008->0x8010R1:0->0x0001->0x0010R2:0-
>0x0010-> 0xe3a02010 5、结果分析与实验体会本次嵌入式实验是我们第一次做实验。

第一次来到技术中心的901机房,机房中有许多的电脑和实验设备。

我们使用的是Embest IDE for ARM这款国产的ARM仿真模拟软件。

Embest IDE 是一套应用于嵌入式软件开发的新一代集成开发环境。

它提供高效明晰的图形化的嵌入式应用软件开发平台,包括一整套完备的面向嵌入式系统的开发和调试工具:编辑器、编译器、连接器、调试器、工程管理器等。

Embest IDE 集成开发环境界面风格同 Microsoft Visual Studio,是一套良好的嵌入式软件可视化开发环境。

所以对我们来说使用起来不是很困
难。

本次实验中第一个是简单的加法运算,第二个移位运算,第三个是存取的实验。

通过此次实验,我们对嵌入式系统的该软件有了初步地了解。

相信我们通过以后的实验及课堂教学中能更好的掌握这门知识。

219。

相关文档
最新文档