湖南工业大学ARM实验报告
湖南工业大学单片机实验报告 1认识实验剖析

实验一、认识实验实验一(一):存储器读写一、实验目的1、掌握寄存器、存储器读写等汇编指令;2、掌握编程软件编辑、编译、调试等基本操作;3、学习简单程序的基本调试方法。
二、实验设备PC机、Keil 软件、Proteus软件。
三、实验内容将70H-7FH16个字节单元的数据复制到片外存储器2000H开始的地址单元中,程序清单如下:ORG 0000HSJMP STARTORG 0030HSTART:MOV 70H,#00HMOV 71H,#01HMOV 72H,#02HMOV 73H,#03HMOV 74H,#04HMOV 75H,#05HMOV 76H,#06HMOV 77H,#07HMOV 78H,#08HMOV 79H,#09HMOV 7AH,#0AHMOV 7BH,#0BHMOV 7CH,#0CHMOV 7DH,#0DHMOV 7EH,#0EHMOV 7FH,#0FHMOV R1,#10HMOV R0,#70HMOV DPTR,#2000HLOOP:MOV A,@R0MOVX @DPTR,AINC R0INC DPTRDJNZ R1,LOOPEND四、上机操作及调试步骤1、启动PC机,打开Keil4软件,如图(1)图(1)2、建立Keil工程文件,如图(2)图(2)3、建立一个exe1工程文件(工程文件名任意取),不需要扩展名。
选择工程存放路径,点击“保存”按钮。
如图(3)图(3)4、选择芯片,51单片机在Atmel下,找到A T89C51,选中点击OK;图(4)5、因为使用汇编语言,下面弹出窗口选否;图(5)6、建立工程如图图(6)7、为工程添加文件,也就是汇编代码,点击新建按钮(或File->new),弹出Text1文本文件。
新建.ASM文件如图图(7)8、另存为到工程文件,点击保存,保存.asm文件图(8)9、保存后如图图(9)10、添加源文件exe1.asm,右键单击Source Group1,选中其中的“Add file to Group”Source Group1”,出现一个对话框,要求寻找源文件,单击exe1.asm文件,然后在点击Add按钮,此时对话框不会消失,在点击close就Ok 了,如图图(10)图(11)11、没有匹配的源文件,不要急,将C Source file(*.c)换成All files(*.*),源文件就出来了图(12)12、最终如图13、接下来就是写汇编代码了14、写好汇编代码,点击下面三个按钮进行编译……,没有错误(0 Error)就编译通过15、生成hex文件,下载到单片机中,使得单片机工作…………设置如下:单击如下按钮,在弹出的对话框中选中output列表项,按图设置,并单击OK保存就行了。
arm中断实验的实验报告

arm中断实验的实验报告ARM中断实验的实验报告引言:ARM中断是一种常用的处理器功能,它可以在特定条件下中断当前的程序执行,转而执行指定的中断服务程序。
本次实验旨在通过ARM中断实验,深入了解中断的原理和应用。
一、实验背景ARM中断是ARM处理器中的一种重要功能,它可以在特定条件下中断当前的程序执行,转而执行指定的中断服务程序。
中断可以分为外部中断和内部中断两种类型。
外部中断是指来自外部设备的中断请求,例如外部设备的输入信号变化;内部中断是指来自处理器内部的中断请求,例如算术溢出、指令错误等。
二、实验目的1. 了解中断的概念和原理;2. 掌握ARM中断的实现方法;3. 学习如何编写中断服务程序。
三、实验步骤1. 准备实验环境:搭建ARM开发板,连接必要的外设;2. 配置中断控制器:根据实验需求,配置中断控制器的相关寄存器,使其能够正确响应中断请求;3. 编写中断服务程序:根据实验需求,编写中断服务程序,实现中断处理的相关功能;4. 运行实验程序:将编写好的程序下载到ARM开发板上,运行程序,观察中断的触发和响应情况;5. 实验结果分析:根据实验结果,分析中断的触发条件、中断服务程序的执行情况等。
四、实验结果与分析通过实验,我们成功实现了ARM中断的功能。
在实验过程中,我们配置了外部设备的中断引脚,当引脚状态发生变化时,中断控制器会产生中断请求,处理器则会立即中断当前的程序执行,转而执行中断服务程序。
在中断服务程序中,我们可以完成一些特定的操作,例如读取外设数据、更新系统状态等。
实验结果表明,中断服务程序能够正确地响应中断请求,并完成相应的操作。
五、实验总结本次实验通过ARM中断的实验,我们深入了解了中断的原理和应用。
中断是一种重要的处理器功能,它可以在特定条件下中断当前的程序执行,转而执行指定的中断服务程序。
掌握了中断的实现方法和编写中断服务程序的技巧,我们可以在实际应用中更好地利用中断功能,提高系统的响应速度和稳定性。
arm中断实验的实验报告

arm中断实验的实验报告
《ARM中断实验的实验报告》
实验目的:
本实验旨在通过ARM中断实验,深入理解ARM处理器的中断机制,并掌握中
断处理的相关知识和技能。
实验内容:
1. 确定实验环境:选择一款ARM处理器,并搭建相应的开发环境。
2. 编写中断处理程序:编写一个简单的中断处理程序,包括中断触发条件、中
断服务程序和中断处理函数。
3. 测试中断程序:在实验环境中模拟中断触发条件,验证中断处理程序的正确
性和可靠性。
4. 分析中断处理过程:通过调试工具和相关技术手段,深入分析中断处理过程,包括中断响应时间、中断服务时间和中断处理流程。
实验结果:
经过实验,我们成功搭建了ARM中断实验环境,并编写了一个简单的中断处理程序。
在测试过程中,中断程序能够正确响应和处理中断请求,表现出良好的
稳定性和可靠性。
通过分析中断处理过程,我们深入理解了ARM处理器的中断机制,包括中断触发、中断处理和中断返回等关键环节。
实验结论:
通过本次实验,我们进一步加深了对ARM处理器中断机制的理解,掌握了中断处理的相关知识和技能。
同时,我们也意识到中断处理在实际应用中的重要性
和必要性,为今后的ARM开发和应用奠定了坚实的基础。
总结:
ARM中断实验是一次富有成效的实践活动,通过实验我们不仅学习到了理论知识,还掌握了实际操作技能。
相信在今后的学习和工作中,我们将能够更加熟
练地应用ARM中断处理技术,为ARM相关产品的开发和应用做出更大的贡献。
arm实训总结

arm实训总结标题:ARM实验实训总结报告一、前言本次ARM实验实训是我对嵌入式系统设计与开发的一次深度实践。
通过这次实训,我对ARM微处理器的结构原理、指令集以及基于ARM架构的嵌入式系统开发流程有了更为直观和深入的理解。
二、实训内容回顾在实训过程中,我们主要围绕ARM Cortex-M系列处理器进行学习和实践。
首先,从理论层面,我们系统地学习了ARM体系结构、工作模式、存储器管理、异常处理等基础知识;其次,在实践环节,我们使用Keil MDK等开发工具进行了汇编和C语言编程,完成了中断服务程序设计、定时器应用、串口通信等多个实战项目。
三、实训过程及收获1. 硬件操作与调试:通过对ARM开发板的实际操作,我亲身体验了硬件连接、程序下载、在线调试等环节,对硬件底层的工作原理有了更清晰的认识,也锻炼了我的动手能力和问题解决能力。
2. 软件编程与实现:通过编写和调试ARM汇编和C语言代码,我对ARM的指令集、寄存器配置、中断处理机制等有了深入理解,同时也提升了我的编程技能和逻辑思维能力。
3. 团队协作与交流:在完成复杂项目的过程中,我们分工合作,共同探讨解决方案,这不仅提高了我在团队环境下的工作效率,也锻炼了我与他人沟通协调的能力。
四、实训反思与展望尽管在实训过程中取得了一定的进步,但我也意识到自身在某些方面还有待提升,如对实时操作系统RTOS的理解与应用、硬件驱动程序的设计与优化等。
未来的学习中,我将深化对这些领域的研究,努力提升自己在嵌入式系统开发方面的综合能力。
总结,此次ARM实训是一次宝贵的实践经历,它使我对嵌入式系统的软硬件协同设计有了更深层次的认知,并为我后续从事相关领域的工作或研究打下了坚实的基础。
五、结语ARM实训不仅是对我现有知识的检验,更是对未来专业技能的磨砺。
我会珍视这份实践经验,以此为契机,持续探索并深化对嵌入式系统尤其是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处理器领域的水平,为将来的工作和研究打下坚实的基础。
湖南工业大学电自专业89s51单片机实验报告(DOC)

实验一二进制转换成十进制实验一、实验设备1.THGQC-1型嵌入式单片机实验开发系统-套。
2.PC机一台。
二、实验目的掌握汇编语言设计和实验步骤,熟悉在KEIL环境下观察内部RAM 的方法。
三、实验内容单片机中的数值有各种表达方式,这是单片机的基础。
掌握各种数制之间的转换是一种基本功。
本实验内容是将一个给定的一字节二进制数,通过编程将其转换成十进制码。
四、实验步骤1)启动PC机,打开KEIL软件,软件设置为模拟调试状态。
在所建的Project文件中添加TOBCD.ASM文件,打开TOBCD.ASM文件,阅读、分析、理解程序,编译程序进行调试(如何建立工程请看附录说明)2)打开RAM观察窗口,根据示例程序注释设置断点,运行程序。
程序具体功能是将累加器A的值拆为三个BCD码,并存入RESULT开始的三个单元,例程A赋值#0ffh。
打开MEMORY WINDOW数据窗口,(在MEMORY#1中输入D:30H)观察RAM地址30H、31H、32H的数据变化30H更新为02,31H更新为05,32H更新为05。
3)修改源程序中给累加器A的赋值,重复实验,观察实验效果。
4)打开CPU寄存器窗口,选择单步或跟踪执行方式运行程序,观察各寄存器的变化可以看到程序执行的过程,加深对实验的了解。
五、实验程序参考框图六、实验程序RESULT EQU 30HORG 0000HJMP STARTORG 0100HSTART:MOV SP,#40HMOV A,#0FFHCALL BINTOBCDNOP ;此处设置断点,察看RAM 30H,31H,32HLJMP $BINTOBCD:MOV B,#100DIV ABMOV RESULT,A ;除以100得百位数MOV A,BMOV B,#10DIV ABMOV RESULT+1,A ;余数除以10得十位数MOV RESULT+2,B ;余数为个位数RETEND七.实验程序编译和结果分析图1为keil2程序编辑器的编译窗口。
湖南工业大学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等指令,完成基本数学/逻辑运算。
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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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等指令,完成基本数学/逻辑运算。
具体实验参考程序如下:/* armasm1b.s */.EQU X, 45 /*定义变量X,并赋值为45*/.EQU Y, 64 /*定义变量Y,并赋值为64*/.EQU Z, 87 /*定义变量Z,并赋值为87*/.EQU STACK_TOP, 0X1000 /*定义栈顶0X1000*/.GLOBAL _START.TEXT_START: /*程序代码开始标志*/MOV R0, #X /*X的值放入R0*/MOV R0, R0, LSL #8 /*R0的值乘以2的8次方*/MOV R1, #Y /*Y的值放入R1*/ADD R2, R0, R1, LSR #1 /*R1的值除以2再加上R0后的值放入R2*/MOV SP, #0X1000STR R2, [SP]MOV R0, #Z /*Z的值放入R0*/AND R0, R0, #0XFF /*取R0的低八位*/MOV R1, #Y /*Y的值放入R1*/ADD R2, R0, R1, LSR #1 /*R1的值除以2再加上R0后的值放入R2*/LDR R0, [SP] /*Y的值放入R1*/MOV R1, #0X01ORR R0, R0, R1MOV R1, R2 /*Y的值放入R1*/ADD R2, R0, R1, LSR #1 /*R1的值除以2加上R0的值放入R2*/ STOP: B STOP /*程序结束,进入死循环*/.END3.添加源文件。
选择Project→Add To Project→File项或单击工程管理窗口中的相应右键快捷菜单命令,打开文件选择对话框,在工程目录下选择刚才建立的源文件armasmla.s/armasmlb.s。
4.基本设置。
选择Project→Settings…菜单项或按下快捷键Alt + F7,弹出工程设置对话框;在工程设置对话框中选择Processor属性页,按照使用要求对目标板所用处理器进行设置。
5.生成目标代码。
选择Build→Build armasmla菜单项或按下快捷键F7,生成目标代码。
此步骤也可以通过单击工具栏上相应按钮来完成。
6.调试设置。
选择选择Project→Settings…菜单项或按下快捷键Alt + F7,弹出工程设置对话框;在工程设置对话框中,若选择Remote页面则对调试设备模块进行设置;若选择Debug 页面则对调试模块进行设置。
7.选择Debug→Remote Connect连接软件仿真器,执行Download命令下载程序,并打开寄存器窗口。
8.打开存储器窗口,观察地址0x8000~0x801F的内容以及地址0xFF0~0xFFF的内容。
9.单步执行程序,并观察和记录寄存器与存储器值的变化。
五、实验报告执行-START前将45赋值给X,将64赋值给Y,并定义栈顶为0X00001000, 执行MOV sp, #stack_top后sp:0x00001000,执行 MOV r0, #x后r0:0x0000002d执行MOV r0, #y 后r0:0x00000040LDR r1, [sp] 取堆栈中的数到R1ADD r0, r0, r1 执行前r0:0x0000002d r1:0x00000040执行后:r0:0x0000006d最终实现了两个数字的相加。
六.实验总结本次实验主要是熟悉ARM汇编指令和学习使用ARM ADS / Embest IDE for ARM 开发环境及ARM软件模拟器。
本次为验证试验,通过本次实验掌握了基本的汇编语句,实现了基本的加法运算和基本的数学/逻辑运算。
在实验过程中记录了在但不运行时有关寄存器和存储器的值,经过查询分析,查看寄存器和存储器的值,检查结果是否正确;通过这次实验熟练掌握了软件的操作和使用,学到了很多。
实验二 ARM汇编指令使用实验——存储区数据块的传送一、实验目的1.熟悉ARM ADS 1.2 / Embest IDE for ARM 开发环境及ARM软件模拟器的使用。
2.通过实验掌握使用LDM/STM、B、BL等指令完成较为复杂的存储区访问和分支程序的方法,学习使用条件码,加强对CPSR的认识。
二、实验设备1.硬件:PC机。
2.软件:ADS 1.2 / Embest IDE 200X集成开发环境。
三、实验内容设计并调试一个存储区数据块的传送程序,具体数据块的传送要求为:将数据从源数据区snum复制到目标数据区dnum,数据的个数num假定为20,复制时以8个字为单位进行,对于最后不足8个字的数据,以字为单位进行复制。
用ARM汇编语言设计该数据块复制程序的设计思想如下:先将源数据区的起始地址、目标数据区的起始地址以及数据个数赋给选定的寄存器R0、R1、R2,再根据每次批量/单个复制数据的个数R3确定用于数据复制的中间寄存器R4~R11,之后先将源数据区的若干个数据批量装载到中间寄存器中,再将中间寄存器的数据批量存储到目的数据存储区,随后进行数据是否复制完毕的判断,若未复制完毕,则修改有关操作数据地址,并重复前面的数据复制操作,否则,终止操作,程序结束。
四、实验操作步骤1.新建工程。
先建立一个实验文件夹,如E\ARMSY\armasm2;然后运行Embest IDE 集成开发环境,选择File→New Workspace菜单项,弹出一个对话框,输入工程名ARMcode 等相关内容;最后单击OK按钮,将创建一个新工程,同时创建一个与工程名相同的工作区。
此时在工作区窗口将打开该工作区和工程。
2.建立源文件。
选择File→New菜单项,弹出一个新的、没有标题的文本编辑窗口,输入光标位于窗口中第一行,按照实验参考程序编辑输入源文件代码。
编辑完后,保存文件armasm2.s。
.GLOBAL _START.TEXT.EQU NUM, 20 /*定义需要复制的字数据个数NUM为20*/_START:LDR R0, =SRC /*将R0指向源数据区的起始地址*/LDR R1, =DST /*将R1指向源数据区的起始地址*/MOV R2, #NUM /*将需要复制的字数据个数存放在R2中*/MOV SP, #0X400 /*将堆栈指针SP指向#0X400*/ BLKCOPY:MOVS R3, R2, LSR #3 /*R2的值除以8的结果存入R3*/BEQ COPYWORDS /*若Z=1,则转COPYWORDS*/STMFD SP!, {R4-R11} /*将R4~R11的内容存入堆栈进行保护*/ OCTCOPY:LDMIA R0!, {R4-R11} /*从源数据区装载8个字数据到R4~R11*/ STMIA R1!, {R4-R11} /*将R4~R11中的8个字数据存入目的数据区*/SUBS R3, R3, #1 /*每复制一次R3减1*/BNE OCTCOPY /*若R3不等于0,则转移到OCTCOPY*/LDMFD SP!, {R4-R11} /*将堆栈内容恢复到R4~R11*/COPYWORDS:ANDS R2, R2, #7 /*计算需复制的奇数个字的个数*/BEQ STOP /*若R2=0则停止*/WORDCOPY:LDR R3, [R0], #4 /*将源数据区的一个字装载至R3*/STR R3, [R1], #4 /*将R3中的数据存到目的数据区*/SUBS R2, R2, #1 /*数据传输控制计数器减1*/BNE WORDCOPY /*若R2不等于0,则转移到WORDCOPY*/STOP:B STOP.LTORGSRC: /*源数据区起始地址标号*/.LONG 1, 2,3 ,4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4DST: /*目的数据区起始地址标号*/.LONG 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .END3.添加源文件。
选择Project→Add To Project→File项,或单击工程管理窗口中的相应右键快捷菜单命令,打开文件选择对话框,在工程目录下选择刚才建立的源文件armasm2.s。
4.基本设置。
选择Project→Settings…菜单项或按下快捷键Alt+F7,弹出工程设置对话框;然后在工程设置对话框中,选择Processor属性页,对目标板所用处理器进行设置。