ARM汇编实验报告.docx

上传人:b****1 文档编号:20652865 上传时间:2023-04-25 格式:DOCX 页数:11 大小:275.36KB
下载 相关 举报
ARM汇编实验报告.docx_第1页
第1页 / 共11页
ARM汇编实验报告.docx_第2页
第2页 / 共11页
ARM汇编实验报告.docx_第3页
第3页 / 共11页
ARM汇编实验报告.docx_第4页
第4页 / 共11页
ARM汇编实验报告.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

ARM汇编实验报告.docx

《ARM汇编实验报告.docx》由会员分享,可在线阅读,更多相关《ARM汇编实验报告.docx(11页珍藏版)》请在冰豆网上搜索。

ARM汇编实验报告.docx

ARM汇编实验报告

《嵌入式系统原理与应用B》课程实验报告

ARM汇编语言编程与调试

要求完成的主要实验

1、给出的数据中寻找最大、最小数问题

2、两种求和运算的编程与调试

3、第四章作业第9题

4、排序冒泡程序的调试与总结

5、第四章作业第11题

说明:

标注完成的实验,未完成的给予说明

专业名称:

通信工程

班级:

1510班

学牛姓名:

石龙飞

学号(8位):

―03151307

指导教师:

刘钊远

给出的数据中寻找最大、最小数问题

 

1、学习汇编软件的安装、使用,熟悉汇编环境。

2、学会使用汇编软件,如何新建一个工程,如何书写源代码,如何进行链接、

编译,以及如何调试。

3、尝试一些简单的指令,学会用汇编指令写一些简单的程序。

 

编写一个汇编程序,要求在给定的一组数中找到最大数和最小数

三、实验主要步骤

1、首先建立一个工程

2、再新建.s的源文件,添加到工程中

Tir^A:

3、编写源代码,这里主要是实现在一组数中寻找最大数和最小数,最后将找到

的两个数放到相应的寄存器中

p-R_Rn"huDD.ull--R

DZ31

XPHF止

 

FIWDKAMtIII

LDRM[RO].Hi

CNPT!

2\R4

SIDVCCR2.R4

CKPRl.E?

4

MDtfl35R3E?

4

ADD3?

1.*二

CKPJ?

1L«101

EH巨FTM口ftmXIfTH

STOP

hSTOP

AEE^.Darar匸dT盒READURITE

m^iisSFACE100

EHL

4、进行链接编译,看看有没有语法的错误,如果有错误编译器会提示错误的类

型以及在哪里出错

a

EC«tBODstoM站疑El曲M誣h■沖

IE$40L(H«2CDOtrjtGtTwaLff

00GVDLWrarrTrtaZs

FrwlFQTirMTH£HPstjsXT*lsrA">hi田

5、进行debug调试,查找代码中的逻辑错误,若无逻辑错误,可在debug界面查看运行结果,其最需要的关注的几个地方是菜单栏的一组运行按钮、源码执行的步骤以及断点、左边的寄存器状态、下方的存储器状态,将这些综合起来,就可以很明确的回到程序如何运行,运行结果如何。

四、实验代码

AREA

symbol,CODE,READONLY

ENTRY

CODE32

START

LDRRO,=nums

MOVR2,#1

INITNUMS

STR

R2,[RO],#4

ADD

R2,R2,#2

CMP

R2,#101

BNE

INITNUMS

LDR

R0,=nums

LDR

R2,[R0]

LDR

R3,[R0]

MOV

R1,#1

FINDMAXMIN

LDR

R4,[R0],#4

CMP

R2,R4

MOVCC

R2,R4

CMP

R3,R4

MOVCS

R3,R4

ADD

R1,R1,#1

CMP

R1,#101

STOP

bSTOP

AREAData,DATA,READWRITE

numsSPACE100

END

五、实验总结与分析

□'Currtnt

krO

l-r2

kr3

”..匸4

hrS

L"r£

L-r?

Oaaooca丄E4

OxaOOOOO€4

OsOOOOOOOl

0xi)OOOOu-c4

OKaoooocou

0x50000000

ObCiOOOOOOO

1、实验结果分析

其中用红色方框框起来的是最后程序运行的结果,也就是在R3中保存了最

小数在R2中保存了最大数,完成了实验要求。

2、在用汇编语言编程之前首先要看看有没有汇编软件ADS、没有的话需要安装,

WindowsXP安装起来比较简单,只需要点击setup,一直点击写一部就可以,但是如果是Windows7或者更高版本的话就需要在setup的属性里点击兼容WindowsXP,运行时以管理员身份运行才能正确进行安装。

两种求和运算的编程与调试

实验目的

1、掌握循环的使用技巧,主要确定循环的上下界,以及循环体里需要执行的代码,防止一些越界的操作。

实验内容

2、尝试不同的求和运算的算法。

给定一个正整数,求从零到这个数的所有整数的和。

简单得对问题进行分析可知,这个功能能过用两种方式实现,一种是循环,一种是直接用求和公式计算出来,如果从算法的时间复杂度来说,那肯定是后者时间复杂度低,只有0

(1),但是从学习的角度,还是要练习一下循环结构,因此,这里主要用循环语句实现,以研究其中的问题。

三、实验主要步骤

1、打开ADS,新建一工程,再新建一个.s的源文件,将其添加到工程中去,开始编写源代码。

2、链接、编译源文件,检查语法错误

囚—————…………+

RD旧耳HE卩北己Cehog

横匚D15fctject

0C0DflllDEary1-2-Mlfl

CMWMMRWZIgkw

56L0=05»C&]i

4I0,O0kS|i

TCCHlLRDSlEe

3、用debug进行调试,观察寄存器的状态,在stop前打断点,全速运行

代码,这样就可以在代码最后天下来,查看运行结果。

ARMTla-—T4仃怕ML>Ur杓“二

T*「粘,締叶h|rrtj,的*||片肖|」He皿T]丁4「蚌,険

*

i

4*

r

|4

t4

:

t

iC

hr>3EK'Oi]

in

■r

*•

as

E!

I!

1:

rr

E~

:

:

"

E9

E;

谕阳即

rr

IT

n

LO

IT

r

♦f

El

El

luMlMDaa

a

□t

IE

_,

E-

Ei

34

PF

?

?

Et

-EC

IS

El

I-

M<]

EF

Z'

aj<

EE:

Id

FT

«[>

El

E:

=

■・・M・■II■■!

■I■■■I

irr

ST

44

Kt

LA

1"

lb

Eh

:

a

rr

I"

an

c

IE

IQ

E~

□D

E9

EJ

MW间负

J4

if

ie

10

rr

in

El

U

hrdltfl〔创

34

FF

ET

ai

E4

it

丄。

FT

«[>

El

E?

Vfasi

四、实验代码

AREAsymbol,CODE,READONLY

ENTRY

CODE32

START

LDRR0,=sum

MOVR1,#100

MOVR2,#0

MOVR3,#0

LOOP

ADDR2,R2,#1

ADD

R3,R3,R2

SUB

R1,R1,#1

CMP

R1,#0

BNELOOP

STRCSR3,[RO]

STOP

MOV

R0,#0x18

LDR

R1,=0x20026

AREA

Data,DATA,READWRITE

sumDCD

0

END

五、实验总结与分析

1、实验结果分析

1Bx^izrent

krrO

0x00008038

F

0x00000000

=-r2

QKOQOOOCI64

OxOOOOJ3BA

卜宜4

0x00000000

inilUfaG

用红色框圈起来的是最后执行的结果,也就是将最后0~100的和放在了R3中,是0x13BA,二这个程序采用的是循环的方式求1~100的和,所以最后一个数字是100,正是R2中的0x64。

2、实验总结:

因为这个程序里用到了循环语句,所以就有几个点需要注意,也就是循环的上下界和循环体力边的语句。

在代码实现中,将R1寄存器的值置为100,然后再循环体里每次减一,然后和0进行比较,大于零的话继续,小于等于零的话就跳出循环。

这里容易出错的地方就是最后到底是和谁比较或者R1的初值给多少合适。

再循环体里主要做了两件事,R2从零开始每次加一,而R3就是截止目前所有数的和。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 实习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1