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的重要性,以及它对于现代计算机系统的作用。

arm实验报告

arm实验报告

1.实现64位的加法运算,要求[R1:R0]+[R3:R2],结果放回[R1:R0]中。

(1)程序.global _start.text_start:ldr R0,=0x56594578 /将56594578存到R0中ldr R1,=0x7659eeee /将7659eeee存到R1中ldr R2,=0x545ed87d /将545ed87d存到R2中ldr R3,=0x8653656f /将8653656f存到R3中ADDS R0,R0,R2 /R0=R0+R2ADC R1,R1,R3 /R1=R1+R2+CARRYstop:b stop.end(2)实验截图(3)实验分析[R1:R0]+[R3:R2]=[ 7659eeee :56594578 ]+[ 8653656f:545ed87d]=[ R1:R0]低位相加:56594578+545ed87d=aab81df5高位相加:7659eeee+8653656f=fcad545d与结果相同,试验成功。

( 4 )实验总结这个实验给我最大的收获是让我知道了MOV和LDR的区别,数据从内存到CPU之间的移动只能通过L/S指令来完成,也就是ldr 指令,mov不能干这个活,mov只能在寄存器之间移动数据,或者把立即数移动到寄存器中,还有一个就是ldr伪指令,虽然ldr伪指令和ARM的ldr指令很像,但是作用不太一样。

ldr伪指令可以在立即数前加上=,以表示把一个地址写到某寄存器中。

2.两个数之间的最大公约数的程序。

(1)程序.global _start.text_start:LDR R0,=0x34325345 /将34325345存到R0中LDR R1,=0x45568765 /将45568765存到R1中CMP R0,R1/将寄存器R0减去寄存器R1,并根据结果设置CPSR标志位SUBGT R0,R0,R1 /如果R0>R1,R0=R0-R1SUBLT R1,R1,R0 /如果R0<R1,R1=R1-R0 stop:b stop.end(2)实验截图(3)实验分析R1=45568765 ,R0=34325345化为十进制R1=1163298661,R0=875713349的最大公约数是287585312,换成十六进制就是11243420,。

ARM实验报告

ARM实验报告

ARM实验报告朱银忠1、实验目的(1)熟悉LPC2378的结构功能和代码体系。

(2)熟悉LPC2378实验板的各个模块功能。

(3)掌握基本的硬件电路的连接和调试方法。

(4)利用按键模块,显示模块和主控CPU实现简单的功能。

2、实验步骤(1)学习并熟悉电路图,理解掌握LPC2378及其各个模块的电路连接结构和工作方法。

(2)将LPC2378和其他外围原件焊接在实验板上。

(3)学习keil C的使用方法,建立一个工程。

并利用keil C将所有的主程序和外围程序烧写到LPC2378中。

(4)上电测试各个模块是否正常工作,如果不正常工作则找到原因并解决故障。

(5)通过keil C 编写一个小程序,在LPC 2378实验板上实现一定的功能。

3、硬件调试结果(1)上电后经万用表测试,电压转换电路工作正常,芯片供电电压为3.3V,部分外围元件为5V。

(2)在keil C 中建立工程后,通过进行合适的配置成功的将程序下载进了LPC2378。

(3)将串口模块通过串口线和计算机连接后。

利用串口调试助手软件测试串口模块工作正常。

(4)通过对SD卡的读写操作测试证明SD卡模块工作正常。

(5)通过对键值的读取证明按键模块工作正常。

(6)液晶模块在插上排线后没有反应,经检查,发现接口和封装并不匹配。

将接口调换位置后重新插上排线,再通过调节电位器到合适的位置,液晶可以正常工作。

4、程序功能和实现思路该程序通过LPC2378对液晶模块和按键模块的联合控制,实现了一个“推箱子”游戏的功能。

该程序基本实现思路为,通过按键函数读取键值得到上、下、左、右四个方向的命令。

根据命令控制“人”的位置和“箱子”的位置。

在屏幕上显示“人”的位置和“箱子”的位置,最终当“人”将“箱子”推到预定地点后,游戏结束。

5、程序清单#include "LPC23XX.h"#include "CONFIG.h"#include "GPIO.h"#include "LCD.h"#include "IRQ.h"#include "RTC.h"#include "TIMER.h"#include "KEY.h"#include "I2C.h"#include "UART.h"#include "MOTOR.h"#include "RS485.h"#include "stdio.h"#include "stdlib.h"#define UP 0x34#define DOWN 0x63#define LEFT 0x32#define RIGHT 0x36unsigned int i,j;unsigned char deslocatex[]={13,14};unsigned char deslocatey[]={13,14};unsigned char flag0=0,flag1=0;unsigned char temp;unsigned char ss[];unsigned int sc=0;unsigned long time=100000;static int step=0;unsigned int cant=0 ;struct BOX{unsigned int x;unsigned int y;}Box1,Box2,Box3,Box0;int main(){ config_IO();init_VIC();LCD_Initial();KEY_Initial();I2C_Initial(0x01,40000); //主模式,时钟400KHZI2C_WriteNByte(AT24C64,0x0000,s,sizeof(s)-1);LCD_Delay(1000 );I2C_ReadNByte(AT24C64,0x0000,d,sizeof(s)-1);SCS |= 1; //允许P0、P1的高速GPIO功能PINSEL10 = 0; //禁止EMCPINSEL3=0X00000000;FIO1DIR=0X00040000;FIO1CLR=0X00040000;Logo();//开场动画start:Clr_Screen();c=0;time=50000;Box0.x=3;Box0.y=2;Box1.x=4;Box1.y=2;Box2.x=3;Box2.y=3;Box3.x=4;Box3.y=3;BoxBody(Box0.x,Box0.y);BoxBody(Box1.x,Box1.y);BoxBody(Box2.x,Box2.y);BoxBody(Box3.x,Box3.y);map();while(1){ if(cant==1){Printstr(16,70,"can't ");Printstr(16,90,"move");}cant=0;switch(ReadBC7281(KEY_LATCH)){ case UP:if((Box0.y==1&&Box1.y==1)||(4<=Box0.x<=5&&Box0.y==8)||(Box0.x>=11&&Box 0.y==8)){cant=1;LCD_Delay(time);break;} //can ?else{Clr_part(Box2.x,Box2.y);Clr_part(Box3.x,Box3.y);Box2.y=Box0.y;Box3.y=Box1.y;Box0.y-=1;Box1.y-=1;step++;LCD_Delay(time);break ;}case DOWN://if(((1<=Box0.x<=5)&&(Box0.y==5))||(Box0.x>=11&&(Box0.y==5))||(Box0.y==13)) if((1<=Box0.y<=4)||(5<=Box0.y<=7&&6<=Box0.x<=10)||(8<=Box0.y<=13&&4<=B ox0.x<=13)){Clr_part(Box0.x,Box0.y);Clr_part(Box1.x,Box1.y);Box0.y=Box2.y;Box1.y=Box3.y;Box2.y+=1;Box3.y+=1;step++;LCD_Delay(time);break;}else {cant=1;LCD_Delay(time);break;}case LEFT:if((Box0.x==1)||(Box0.x==6&&Box0.y==7)||(Box0.x==4&&Box0.y>=8)) {//Printstr(19,110,"Can't Move");cant=1;LCD_Delay(time);break;}else{Clr_part(Box1.x,Box1.y);Clr_part(Box3.x,Box3.y);Box1.x=Box0.x;Box3.x=Box2.x;Box0.x-=1;Box2.x-=1;step++;LCD_Delay(time);break;}case RIGHT:if((Box1.x==16)||(Box1.x==11&&Box1.y==7)||(Box1.x==14&&8<=Box1.y<=12)) {cant=1;LCD_Delay(time);break;}else{Clr_part(Box0.x,Box0.y);Clr_part(Box2.x,Box2.y);Box0.x=Box1.x;Box2.x=Box3.x;Box1.x+=1;Box3.x+=1;step++;LCD_Delay(time);break;}}BoxBody(Box0.x,Box0.y);BoxBody(Box1.x,Box1.y);BoxBody(Box2.x,Box2.y);BoxBody(Box3.x,Box3.y);LCD_Delay(time);if(Box0.x==13&&Box0.y==13){Printstr(19,110,"Win !");LCD_Delay(time);LCD_Delay(time);LCD_Delay(time);restart();LCD_Delay(time);LCD_Delay(time);LCD_Delay(time);LCD_Delay(time);LCD_Delay(time);LCD_Delay(time);LCD_Delay(time);LCD_Delay(time);LCD_Delay(time);goto start;}}}6、程序运行结果(1)7、问题分析。

arm实验报告

arm实验报告

arm实验报告ARM实验报告引言:ARM(Advanced RISC Machines)是一种基于精简指令集计算机(RISC)架构的微处理器系列,广泛应用于移动设备、嵌入式系统和智能家居等领域。

本实验报告旨在介绍ARM架构的基本原理、应用领域以及在实验中的应用。

一、ARM架构的基本原理ARM架构采用精简指令集计算机(RISC)的设计理念,注重指令的简洁性和执行效率。

相较于复杂指令集计算机(CISC),ARM架构的指令集更为简单,指令长度固定,执行速度更快,能够提高处理器的性能和能效比。

ARM架构的核心特点包括:1. 简洁指令集:ARM指令集采用三地址指令格式,指令长度为32位,操作码和寄存器字段清晰明了,易于编程和优化。

2. 统一寄存器:ARM架构中的寄存器集合统一,包括13个通用寄存器、程序计数器(PC)和状态寄存器(CPSR),简化了编程和寄存器间的数据传输。

3. 流水线技术:ARM处理器采用流水线技术,将指令的执行过程分为多个阶段,使得多条指令可以同时执行,提高了处理器的吞吐量。

4. 片上缓存:ARM架构支持片上缓存(Cache),能够提高数据的访问速度和处理器的效率。

二、ARM架构的应用领域1. 移动设备:由于ARM处理器具有低功耗和高性能的特点,广泛应用于智能手机、平板电脑和可穿戴设备等移动设备中。

ARM处理器能够提供流畅的用户体验和长时间的电池续航能力。

2. 嵌入式系统:ARM架构适用于嵌入式系统,如智能家居、工业自动化和车载电子等。

ARM处理器的小尺寸、低功耗和高性能使其成为嵌入式系统的首选。

3. 服务器和云计算:ARM架构逐渐在服务器和云计算领域崭露头角。

ARM服务器具有低能耗和高并发处理的特点,能够满足云计算和大数据处理的需求。

三、ARM实验应用在本次实验中,我们使用ARM开发板进行了一系列实验,包括LED控制、按键输入和串口通信等。

1. LED控制实验:通过编写ARM汇编语言程序,实现对开发板上的LED灯进行控制。

arm实验报告

arm实验报告

实验二:编写程序将R2的高8位传送到R3的低8位(一),程序代码:.global _start.text_start:mov r2,#0x33000000mov r3,#0x00000022mov r1,r2,LSR#24ORR r3,r1,r3,LSL#8stop:b stop.end(每一条的指令分析如下)(二),实验结果及分析:按F11单步跟踪,看寄存器中内容的变化:1,将寄存器R2赋值0x33000000 :2,将0x00000022写入寄存器R3中:3,将R2的内容右移24位,将结果写入R1,R2保持不变4,将R3的值左边移动8位与R1逻辑或,再将结果放到R3中实验结果:实验三实验64位的加法运算:要求[R1:R0]+[R3:R2]结果放到[R1:R0](一),程序代码.global _start.text_start:mov r0,#0x10000000mov r1,#0x11000000mov r2,#0x22000000mov r3,#0x20200000ADDS R0,R0,R2ADC R1,R1,R3stop:b stop.end(二),实验结果及分析1,给R0赋值2,给R1赋值3,给R2赋值4,给R3赋值5,R0与R2相加,结果写入R06,再将R1与R3带进位位相加,把结果写入R1。

R2R3寄存器的内容不变实验结果:实验7:编写一段程序实现10!(一),程序代码.global _start.text_start:ldr r0,=10 @ 将R0赋值为十进制的10mov r1,r0 @将R0的内容写进R1 ,R0的内容保持不变lable: sub r1,r1,#1 @R1的内容减去1 ,结果送回R0 mul r0,r1,r0 @将R0与R1寄存器的内容相乘,结果写入R0。

R1保持不变cmp r1,#1 @ 将R1的值与1 相比较,看是否相等bgt lable @倘若不为1 ,则跳到lable进行循环stop: @否则停止b stop.end(二),实验结果及分析单步调试,由于寄存器的变换图比较多,只截取最后结果图实验结果:实验8:串拷贝(R0指向源数据串的首地址,R1指向目的数据串的首地址)(一),程序代码.global _start.equ num,8 @定义num= =8_start:LDR R0,=src @将src的值赋给R0LDR R1,=dst @将dst的值赋给R1mov r3,#num @ 将8赋给R3mov lr,pcB strcopystop: b stopstrcopy:LDRB R2,[R0],#1 @加载无符号字节数据STRB R2,[R1],#1 @存储无符号字节数据subs r3,r3,#1 @R3减去1 ,结果送入R3CMP R3,#0 @将R3的内容与0相比较看是否相等BNE strcopymov PC,LR.datasrc:.long 1,2,3,4,5,6,7,0 @定义srcdst:.long 2,4,3,5,6,2,5,0 @定义dst.end(二),实验结果及分析实验结果:心得体会:开始的时候,在实验中编译连接成功后,点击debug的connect后总出现warning:load symbol file failed. 找了些原因,不知道怎么回事,后来才发现在开始的设置中的setting中设置download时忘记同时设置的generate了,当设置好后就解决了该warning。

arm程序设计实验报告

arm程序设计实验报告

arm程序设计实验报告ARM程序设计实验报告一、引言ARM(Advanced RISC Machine)是一种精简指令集计算机(RISC)架构。

在本次实验中,我们将学习和实践ARM程序设计的基本知识和技巧。

本报告将介绍实验的目标、步骤和结果,并对所学内容进行总结和思考。

二、实验目标本次实验的主要目标是通过编写ARM汇编程序,实现简单的功能。

具体来说,我们将学习如何使用ARM汇编语言编写程序,了解寄存器、指令和内存的基本概念,以及如何进行程序的调试和优化。

三、实验步骤1. 环境准备:安装ARM开发工具链,并配置开发环境。

2. 编写程序:根据实验要求,编写ARM汇编程序,实现指定的功能。

3. 调试与测试:使用模拟器或硬件平台,调试和测试编写的程序,确保程序的正确性和稳定性。

4. 优化改进:根据实验结果和性能要求,对程序进行优化改进,提高程序的效率和可靠性。

四、实验结果在本次实验中,我们成功完成了以下任务:1. 实现了一个简单的计算器程序,可以进行加减乘除运算,并输出结果。

2. 编写了一个字符串反转程序,可以将输入的字符串逆序输出。

3. 设计了一个简单的游戏程序,用户需要通过按键控制角色移动,避开障碍物。

通过以上实验,我们掌握了ARM汇编语言的基本语法和指令,了解了寄存器和内存的使用方法,以及如何进行程序的调试和优化。

同时,我们还学习了如何与外部设备进行交互,实现更复杂的功能。

五、实验总结通过本次实验,我们深入了解了ARM程序设计的基本原理和技巧。

ARM架构的精简指令集使得程序设计更加高效和灵活,适用于各种嵌入式系统和移动设备。

同时,ARM处理器的低功耗特性也使得其在无线通信、物联网等领域有着广泛的应用前景。

然而,ARM程序设计也存在一些挑战和难点。

首先,由于ARM汇编语言与高级语言相比,语法更为底层和复杂,需要更加深入地理解计算机硬件结构。

其次,ARM处理器的架构和指令集不同于传统的x86架构,需要重新学习和适应。

实验五 ARM的数据处理指令实验

实验五 ARM的数据处理指令实验

实验五ARM的数据处理指令实验一、实验目的1、熟悉教学ADS集成开发环境,2、懂得各种ARM寻址方式,并能自己动手写一些简单小程序,实现不同的功能。

3、能够运行程序并进行简单分析二、实验环境硬件:PC机一台。

软件:Windows98/XP/2000系统,ADS集成开发环境。

三、预备知识(1)CMP―――――比较指令指令格式:CMP{cond} Rn,operand2CMP指令用Rn 的值减去操作数operand2,并将结果的状态(Rn 与operand2 比较是大、小、相等)反映在CPSR中,以便后面的指令根据条件标志决定程序的走向。

CMP指令与SUBS指令完成的操作一样,只是CMP指令只减,不存结果。

(2)LDR 和STR——用于字和无符号字节指令格式:LDR/STR{cond}{T} Rd,<地址>LDR/STR{cond}B{T} Rd,<地址>指令LDR{cond}{T} Rd,<地址>,加载指定地址的字数据到Rd中;指令STR{cond}{T} Rd,<地址>,存储Rd中的字数据到指定的地址单元中。

LDR{cond}B{T} Rd,<地址>指令加载指定地址的字节数据到Rd的的最低字节中(Rd的高24位清零);STR{cond}B{T} Rd,<地址>指令存储Rd中的最低字节数据到指定的地址单元中。

T为可选后缀,若有T,那么即使处理器是在特权模式下,存储系统也将访问看成处理器是在用户模式下,T 在用户模式下无效,不能与前索引偏移一起使用T。

地址部分可用的形式有4种:零偏移(zero offset) [Rn],Rn 的值作为传送数据的地址。

如:LDR R0,[R1];前索引偏移(pre-indexed offset) [Rn,Flexoffset]{!} 在数据传送之前,将偏移量Flexoffset 加到Rn 中。

其结果作为传送数据的存储器地址。

ARM实验报告综合实验

ARM实验报告综合实验

ARM实验报告综合实验摘要:ARM微处理器已经在各种电子产品中得到广泛应用。

本实验旨在通过对ARM实验板的详细学习,深入理解和掌握ARM微处理器的工作原理及应用。

通过搭建实验平台,完成基本的指令执行、数据传输和I/O操作等功能。

通过实验,掌握ARM汇编语言的基本语法和实现方法,同时提升对嵌入式系统的理解和应用能力。

关键词:ARM微处理器、实验平台、指令执行、数据传输、I/O操作、汇编语言1.引言ARM(Advanced RISC Machines)微处理器是一种精简指令集(RISC)的微处理器架构,以其高性能、低功耗和广泛应用等特点受到了广泛的关注和应用。

本实验旨在通过对ARM实验板的学习和研究,深入理解ARM微处理器的工作原理和应用。

2.实验目的2.1理解ARM微处理器的工作原理;2.2掌握ARM汇编语言的基本语法和实现方法;2.3学习搭建实验平台,完成指令执行、数据传输和I/O操作等功能;2.4提升对嵌入式系统的理解和应用能力。

3.实验内容3.1搭建实验平台3.2学习ARM汇编语言通过阅读相关资料,了解ARM汇编语言的基本语法和寄存器等特点,了解ARM微处理器的指令集和指令执行方式。

3.3编写实验程序根据实验指导书中的要求,编写实验程序,包括基本的指令执行、数据传输和I/O操作等功能实现。

3.4调试和测试经过编写程序后,需要进行调试和测试,确保程序能够正确执行,并达到预期的功能。

4.实验结果通过实验,成功搭建了ARM实验平台,并且实现了基本的指令执行、数据传输和I/O操作等功能。

通过对ARM汇编语言的学习和实践,掌握了其基本语法和实现方法。

5.结论本实验通过对ARM实验板的学习和研究,深入理解了ARM微处理器的工作原理和应用。

通过搭建实验平台和编写实验程序,进一步掌握了ARM 汇编语言的基本语法和实现方法。

通过调试和测试,验证了程序的正确性和功能实现。

通过本实验,提升了对嵌入式系统的理解和应用能力。

实验1 ARM 指令实验

实验1 ARM 指令实验

2012-5-17
深圳市优龙科技有限公司
数据处理指令 数据处理指令可分为数据传送指令、算术逻 辑运算指令和比较指令等。 数据传送指令用于在寄存器和存储器之间进 行数据的双向传输。 算术逻辑运算指令完成常用的算术与逻辑的 运算,该类指令不但将运算结果保存在目的寄 存器中,同时更新CPSR中的相应条件标志位。 比较指令不保存运算结果,只更新CPSR中 相应的条件标志位。
加载/存储指令 加载 存储指令 ARM微处理器支持加载/存储指令用于在寄存器和存 储器之间传送数据,加载指令用于将存储器中的数据传 送到寄存器,存储指令则完成相反的操作。 常用的加载存储指令如下: ------ LDR 字数据加载指令 ------LDRB 字节数据加载指令 ------LDRH 半字数据加载指令 ------STR 字数据存储指令 ------STRB 字节数据存储指令 ------STRH 半字数据存储指令 在本实验中主要用到了LDR和STR指令,下面将介 绍这两条指令的用法:
2012-5-17 深圳市优龙科技有限公司
上面是关于该实验涉及到的部分函数,完整的 代码请看光盘目录的exp文件夹下相应实验的工程 目录。 1.7 练习题 编写一个汇编代码,让LED灯D13不停的闪烁, 同时可以通过调节延迟时间来控制D13闪烁的频率。
2012-5-17
深圳市优龙科技有限公司
2012-5-17 深圳市优龙科技有限公司
1.6 ARM汇编程序编程实例 汇编程序编程实例 1.参考汇编代码程序 参考汇编代码程序,主要实现LED灯D14的不停 闪烁的功能,主要代码如下: ;汇编指令实验 ;定义端口E寄存器预定义 rGPFCON EQU 0x56000050 rGPFDAT EQU 0x56000054 rGPFUP EQU 0x56000058 AREA Init,CODE,READONLY ;该伪指令 定义了一个代码段,段名为Init,属性只读 ENTRY ;程序的入口点标识 ResetEntry

arm实验报告最终版.

arm实验报告最终版.

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

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

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

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

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

(老师提醒:不要放入Bin文件夹中)图一图二2) 建立源文件:点击菜单项File →New,如图三,系统弹出一个新的文本编辑窗,输入源文件代码。

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

图三图四3) 添加源文件:选择菜单项Project →Add To Project →Files ,在工程目录下选择刚才建立的源文件.s 后缀文件,如图五,图六,图七。

图五图六图七4) 基本配置:选择菜单项Project → Settings,弹出工程设置对话框。

在工程设置对话框中。

①选择Processor 设置对话框,按照图八所示,进行配置:图八②选择Remote设置对话框,按照下图九所示,进行配置:图九③选择最右边一个进行编译,显示如图十,则编译成功。

图十④选择Project →Settings →Debug设置对话框,按图十一,十二,十三所示,进行配置:图十一图十二图十三⑤选择最右边一个进行编译,显示如图十四,则编译成功。

ARM 实验报告范本

ARM 实验报告范本
stop:
b stop
.end
⑵、实验内容:
跟踪10次后的答案是:0x375f00
⑶、结果分析:
10!=10x9x8x7x6x5x4x3x2x1=3638800,转化为16进制为375f00(3x165+7x164+5x163+15x162+0x161+0x160=3145728+458752+20480+3840=3628800)
and R3,R3,#0xffffff00;屏蔽掉R2的低8位
orr R3,R3,R2;用取或将R2的低8位移到R3得低8位
stop:
b stop
.end
⑵、实验内容:
将存储在R2中
将存储在R3中
将R2中的高8位“12”移到R2的低8位,原来的数“”变为“”
屏蔽掉R2中的高24位,采用或命令时使其不影响R3中高24位的数值
A R M与嵌入Βιβλιοθήκη 技术实验报

1、编写程序将R2的高8位传送到R3的低8位(不考虑R3的其他位)
⑴、程序代码:
.global _start
_start:
将立即数存储到R2中
;将存储在R3中
mov R2,R2,ROR #24;循环移位24位,使R2中的高八位移到第八位
and R2,R2,#0x000000ff;屏蔽掉R2的高24位,
9+9+0=2,C=1;8+8+1=1,C=1。
相加后的结果为:8989eeee+8949556f =12d3445d,可以看出高32位相加得出的结果和实验得出的结果一样。
所以由结果可以看出实验成功!
3、编写一段程序计算10!

ARM基本指令实验报告书.

ARM基本指令实验报告书.

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 命令下载程序,并打开寄存器窗口。

arm实验报告

arm实验报告

ARM实验报告实验一:
1、编写程序将R2的高8位传送到R3的低8位(不考虑R3的其它位)
2、实验内容以及实验程序代码如下:
3、程序分析:考虑先将R2的数据又移24位,送入R1,再将R3中的数据左
移8位后与R1的数据相或,结果送入R3,即实现将R2的高8位
传送到R3的低8位
实验二:
1、实现64位的加法运算,要求【R1:R0】+【R3:R2】,结果放
回【R1:R0中
2、实验程序如下:
3、实验结果如下:
实验三:
1、实验内容:编写一段程序计算10!
2、程序分析:先给R1、R0赋初值1、2,然后进入循环结构——R0与R1
相乘之后结果保存在R1中,之后R0加1并进行上限判断。

直到R0为
11为止。

3、实验结果如下:
实验四:
1、实验内容:字符串拷贝(R1指向源数据串的首地址,R0指向目的数
据串的首地址
2、实验程序如下:
3、程序分析如下:首先输入两个字符串str1、str2,并让R0指向str1、R1
指向str2. 然后将R0所指的内容按字节先加载后存储到R2,并循环执行
4、实验结果如下:
实验心得:第一次写汇编语言,在实验中遇到过许多各种各样的问题,在自己努力学习和同学的相互帮助下都得到了解决。

做本次实验之前一定要对实验软件熟悉,有关于汇编语言和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。

相关文档
最新文档