版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
电子科技大学
实验报告
课程名称微解决器系统结构与嵌入式系统设计
实验名称。ARM汇编基础实验
任课教师实验教师姓名学号
实验地点分组号时间年—月—日
一、实验目的
I.熟悉并掌握常用ARM汇编指令
2.熟悉并掌握“C+汇编”混合编程技术
3.纯熟使用ARM软件开发调试工具Keil
二、实验内容
1.学习使用Keil开发工具
2.实现累加运算功能(汇编编程,必做)
3.实现字符串拷贝功能(C+汇编,必做)
4.实现求和运算功能(C+汇编,必做)
5.实现冒泡排序算法(汇编编程,选做)
微解决器系统结构与嵌入式系统设计实验报告
三、实验环节
L学习使用keil开发工具
1.点击“KeiluVision5”打开软件主窗口。
2.点击ProjeCt->NewuVis1onProject建立新工程。
3.为新工程命名。
4.为工程选择目的器件:三星S3c2440A。
5.选择是否添加S3c244O.s启动文献:C源程序工程选“是”,汇编源程序工程选
普。
6.在工程SoUrceGroup上点右键选择添加新工程文献。
7.选择源文献类型。
8.录入源代码并保存。
9.对工程进行build或rebui1do
10.点击debug按钮进入/退出调试,忽略代码大小限制。使用单步调试,仔细观测过
程中关键寄存器值的变化。
2.各个实验环节
实验L1:用汇编语言实现1+2+...+N的累加(必做)
1.建立新工程,加入实验1.2文献夹中的sum.s
2.用汇编补充算法核心部分,代码参考流程图如下图所示。
「RO=RO+R1
'YES
结果溢出?►SUM_END
NO
'YES
R1>=N
NO
R1=R1+1
3.使用单步调试,仔细观测过程中关键寄存器值的变化。
实验1.2:C调用汇编实现字符串拷贝功能(必做)
1.建立新工程,加入实验L3文献夹中的main.c和testf1le.s(同一个工程下添加两个
文献一起编译)。
2.补充完毕源代码中缺失的部分,实现字符串拷贝功能
3.运营Debug进行调试
实验1.3:汇编调用C实现实现求和1+2+...+N(必做)
1.建立新工程,加入实验1.4文献夹中的Sum.c和testfile.s(同一个工程下添加两个文
献一起编译)。
2.补充完毕源代码中缺失的部分,通过调用c函数g()实现l+2+3+glovbl,结果存
在R8中。
3.运营Debug进行调试
实验1.4:ARM汇编实现冒泡算法(选做)
1.建立新工程,加入实验1.5文献夹中的maopao.S。
2.补充完毕源代码中缺失的部分,实现冒泡排序功能。
3.运营Debug进行调试
四、实验结果
实验1.1用ARM汇编实现l+2+...+n的运算。
在sum.s文献中,添加如下核心代码:
SUN_L1
ADDRO,RI;R0,RI求和
BVSSUM_END;判断是否溢出,溢出则执行SUM_END程序,求和结束
CMPRI,R2;R1、R2作差与。进行比较
BHSSUM_END;R1〉=R2,则执行SUM_END程序,否则向下继续执行
ADDRI,#1;R1增1
BSUNLI;循环运营SUN_L1
调试过程:
1.设立N的值并赋值给R0
Register|ValueOxOOOOOOOE3000ADDR0,*0x00
19:LDRR0,7;设置子程序SUM_N的入口参数
2Current
|0x00000010
0x000000642064IMOVRO,*0x64
0x0000000020:BLSUMN;谒用子程序SUMN
0x000000000x00000012F0000x00000018-Parctl
0x000000000x00000014F8010x00000018-Part12
0x00000000
0x00000000
0x00000000
0x00000000Jsum.s
0x00000000;功能:计算1+2+3—...+N
0x00000000
:说明;N>=。,当N=0时结果为0,当N=I时结果为1
RIO0x00000000
Rll0x00000000
R120x00000000EQU100;定义N的值100
RI3csp)0x3O003FO0AREAExaiqples,CODE,READONLY:声明代码断Examples3
R14HR)0x00000000ENTRY;标识程序入口
IRI5(PC)0x000000127
I-CPSROxOOOOOOF3CODE32
0
9ARMCODE
0
010
V011LDRSPr-0X30003F00;设置堆枝指针
I12ADRRO,THUMB_CODE+1;
137跳转并切换处理器状态
T14;声明文字池
M0x1315
SPSR0x00000000
+16CODE16
User/Systea
+17THUMBCODE
*FastInt...
Interrupt18
+
Superv...19LDRR0,-N;设置子程序SUM_N的入口参数
+
Abort20BLSUM_NSUMN
+;调用子程序
UndefinedBTHUMBCODE
-21
Internal22
PC$0x00000012
23;SUMN
ItodaSupervisor.Th^:.44-er-.
2.将R0=N的值复制给R2
,一y,+J-।•••»।-LXJ▼115ii
7
豺画「助o-3n|❖回回武叵)国熄•巨方―/•国•国•立•
Registers»画Disassembly
;若则返回
Register34:BEQSUM_ENDNR,
-Current)x00000010D0093EQ0x00000032
35:CMP
RO0x00000064R2,tl
RI0x00000000X0000001E2AOICMPR2,#0x01
0x00000064t36:BEQSUM_END;若21,则返回
E?0x00000000||0x00000020D007BEQ0x00000032
L40x00000000知44》工*
F50x00000000
I.-:
0x00000000
hJr
0x000000001sums
0x00000000
;功能:计算1+2+3+................+N
0x00000000
;入口参数:RON的值
0x00000000
0x00000000;出口参数:R0运行结果
0x00000000;占用资源:R0
Ox3O0O3EE0;说明:当N=0时结果为0,当N=1时结果为1
0x00000017;若运算溢出.结果为。
|R15(FC)OxOOOOOOlC
I-CPSROxOOOOOOF3SUMN
N0
'PUSH{R1-R7,LR);寄存器入栈保护
Z0
HOVSR2R0;将口的值复制到R2,并影响相应条件标志
C0r
V0BEQSUM_END:若N・0,则返回
,--,三
I1
F1BEQSUM_END;若所1,则返回
T1MOVRI,#!;初始化计数器RW1
M0x13
MOVR0*0;初始化计数器R07
ffiSPSR0x00000000
*User/System
FastIni..
♦Interrupt;用汇镰实现算法核心部分
&Supers...ADDRO,RO,R1;
3.判断N是否为0或者,改变标志位C
|Value|0x0000001CD009BEQ0x00000032
Register
35:CMPR2,1l
-Current
|0x0000001E2AOI
0x00000064CMPR2,#0x01
0x0000000036:BEQSUM_END;若所工,则返回
0x00000064^0x00000020D007BEQ0x00000032
0x0000000037:;初始化计数器R・1
0x00000000|0x00000022
Rlr#0x01
0x00000000
38:MOVR0,*。;初融化计数器R0・l
0x00000000
39:SUN_
0x00000000
0x0000000040:
0x0000000041:;用汇编实现算法核心部分
R100x0000000010*000000242000MOVRO.tOxOO
Rll0x00000000
R120x00000000
R13GF)Ox3OO03EEOsums
:爱明:当NT时经果为。.当NY时结果为1
|R15(PC)0x00000020
;若运算溢出-结果为0
|CPSRQx200000F3
PUSH{R1-R7,LR);寄存器入栈保护
MOVSR2rR0;将11的值复制到R2,并影响相应条件标三
BEQSUM_END;若加0,则返回
CMPR2,#l
BEQSUM_END;若加工,则返回
0x13
3SPSR0x00000000Ri,n;初始化计数器R・1
封User/SystenR0,10;初始化计数器R0-1
31FastIni..
51Interrupt
研Sxiperv...;用汇编实现算法核心部分
51'Abort
ADDRORORl;
3"Undefinedft
SUMEND;
dInternal
PC$0x00000020
ModeSupervisor
Stat«z24
S«c0.00000200ADD
3CPI5
?+)-「PIS-r
4.将R0,R1分别初始化为0与1
Registers埠|tJjuiiassemoi)
RegisterIValue,用汇缠妥现算法核心部分
RD0x000000002000MOVR0,#0x00
0x00000001ADDRO,R0,RI;
0x000000641840ADDR0zRO,RI
0x0000000043:BVSSUM_END;
0x0000000044:
0x00000000
)x00000028D603BVS0x00000032
0x00000000
45:
0x00000000CMPR1,R2;
0x000000004291CMPRl/R2
0x00000000BHSSUM_END;
0x00000000D201BCS0x00000032
0x00000000
0x00000000
0x30003EEQsums
BEQSUM_END;若-一。,则返回
|R15(K)0x00000026
|CPSROx60000QF3CMPR2,tl
0BEQSUMEND;若21,则返回
MCV:,r
MOVR0,#0;初始化计数器ROT
0SUN_L1
I
F;用汇编实现算法核心部分
T|ADDR0R0R:;
M0x13rr
ESPSR0x00000000BVSSUM_END;
♦JUser/System
.t!FastInt…CMPR1,R2;
+'
*jInterr3tBHSSUM_END;
+JSuperv...ADD
+!,Abort
3SUN_L1;
hdefined
5.将R0+R1赋值给RO
r\cyiaici3
RegisterValue
41:;用汇缝实现算法核心部分
-Current
|R00x00000001|0x000000242000MOVRO,#0x00
0x0000000142:ADDRO,RO,RI;
0x00000064|0x000000261840ADDRO,RO,RI
R10x0000000043:BVSSUMEND;
R20x0000000044:
R30x00000000
D603BVS0x00000032
R40x00000000
RM545:CMPR1,R2;
0x00000000
10x0000002A
0x000000004291CMPR1,R2
R7即
0x0000000046:BHSSUM_END;
R90x00000000■0X0000002CD201BCS0x00000032
R10x00000000・□
R1
R10x00000000
R1(SP0x30003EE0Jsums
R1(LR0x00000017
BEQSUM_END;若加0,则逐茴
R15(PC)0x00000028
CMPR2,#l
CPSROxOOOOOOF3
BEQSUM_END;若?口,则返回
MOVRI,Il;初始化计数器Rl=l
MOV;初始化计数器R0・l
V0SUNLI
I1
;用汇编实现算法核心部分
T1
ADD,,•
M0x13J
ESPSR0x00000000BVSSUMEND;
User/System
FastInt.CMPRlrR2;
InterruptBHSSUM_END;
Sapcrv...ADD,一,J:
Abort
Undefined
6.判断是否溢出与R1是否大于等于R2=N,改变标志位N
”:;用汇编实现算法核心部分
Value
BXt.0x000000242000MOVRO,*0x00
.cur
.R00x0000000142:ADDR0,R0,RI;
■0x00000026
K10x000000011840ADDRO,RO,RI
R20x0000006443:BVSSUMEND;
K3
R40x0000000044:
BS0x0000000010x00000028D603BVS0x00000032
R60x00000000
45:CMPR1,R2;
K70x00000000
R8■OX0000002A4291CMPR1,R2
0x00000000
R9:;
R10x0000000046BHSSUMEND
R10x00000000=J>0x0000002CD201BCS0x00000032
R10x00000000
K1
R10x00000000
G0x00000000
p)Ox30OO3EEOJ
JR)0x00000017
ILISUM_END;^N=O,则返回
R15CPC)OxOOOOOOZC
R2,#l
HCPSROx800000F3
;若只=则返回
1SUM_END1,
RI,Il
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 门诊输液室护士工作总结
- 幼教行业助理工作总结
- 电影行业技巧提升总结
- 国家课程:《机械制造装备设计》第一章
- 2025-2030全球管式炉行业调研及趋势分析报告
- 2025-2030全球工业应用移动机器人行业调研及趋势分析报告
- 2025年全球及中国电动低升降托盘车行业头部企业市场占有率及排名调研报告
- 2025年全球及中国塑料3D打印长丝行业头部企业市场占有率及排名调研报告
- 2025-2030全球工业胶囊填充机行业调研及趋势分析报告
- 2025年全球及中国微米级氧化锆行业头部企业市场占有率及排名调研报告
- 2024年北京东城社区工作者招聘笔试真题
- 《敏捷项目管理》课件
- 统编版(2024新版)七年级上学期道德与法治期末综合测试卷(含答案)
- 黑龙江省哈尔滨市2024届中考数学试卷(含答案)
- 前程无忧测评题库及答案
- 高三日语一轮复习助词「と」的用法课件
- 物业管理服务房屋及公用设施维修养护方案
- 五年级上册小数递等式计算200道及答案
- 世界老年人跌倒的预防和管理指南解读及跌倒应急处理-
- 带拼音生字本模板(可A4打印)
- 超高大截面框架柱成型质量控制
评论
0/150
提交评论