w KV RD R MUMC老J_LAr5TT RO. S3. RO. RL . d kJ.
嵌入式实验报告
班级:电信工X班姓名:XXX 学号:20120012XXXX
实验一、ARM匚编指令实验-简单数据搬移实验
实验目的:
熟悉实验开发环境,掌握简单ARM匚编的使用方法
实验内容
熟悉开发环境并使用LDR /STR,MOV等指令访问寄存器或存储单元;
使用ADS/SUB/LSL/LSR/AND/ORR等指令完成基本数学/逻辑运算。
实验要求
(1)按照前面叙述介绍的方法,在ADS下创建一个工程asmlabl,定义两个变量x,y和堆
栈地址0x1000,将变量x的内容存到堆栈顶,然后计算x+y,并将和存到堆栈的下一个单元。通过AXD 查看寄存器和memory和寄存器中数据的变化。
(2)在指令后面加上适当注释,说明指令功能。
(3)指出程序执行后各相关寄存器及存储器单元的具体内容。
程序代码截图如下:
A PEA Imt.CODE.FEADOKLY
EhihV
L.QTiH.V
K EUU 4b
7 EQU C4
ST ack_tcp SOU QirlCOD
JTstack_tr)t3:卅鸟機」砂也it
#x :JI賞值JM^&RO
fSF] :肮入栈,朗if的怕入神
W :把y的谊赋給刘
I5F I :婕麟也穫,,fiftARln和田中袴SS E的值
RD R1 -RO ^EO+Kl
ISF.#4 I [先菽行壬+4鼻朋为32炖九令臬1 ..百將尺沖I書复制列ISP時浏旷奇存番
B
EWt
程序运行结果截图:
AKM92OT 二 Memory S t art a air
^Ox 10D0
T abl - Hex - Ko prefix
Ta.l-2
Ko prefix | T?b3 - Addreas
—1
2 3 4
5 百 0x00001000 23 00 oa 00 ED OO OO 1 0x00001010 10 00 FE E7 00 E£ oo 1 OxCOOOLO^O 10 00 FF E7 00 EE DO 1 0x00001030 ID 00
FF
E7
0D
ES DO 1 Anu rt rirtrii fl J n
■1 c
fl A
r 4
rtr
1
由实验结果可知堆栈的第二个单元中存放了 x+y 的值6D
练习题
编写程序实现对一段数据的最大值和最小值搜索, 最大值存在于max 变量之中,最小值存在 于min 变量之中。提示:数据的定义采用伪指令:
DCD 来实现。
基本思路:利用 R0做基地址,将 R1,R2分别放入第一单元的内容,利用
R3做循环计数,
利用R4遍历读取第2至最后一个数据,如果R1的数据小于新读入的 R4数据则将R4的内容 存入R1,如果R2的内容大于R4的内容则将R4的内容存入R2,。遍历完成之后,R1将存放 最大数据,R2将存放最小数据。
程序代码截图如下:
AEEA ccmp ,CODE ,KEADONIY
ENTRY
CODE 32
START
QR EO ,讹T
LPR El ”[RO] IDE R2.[RO]
100P
ADD KO ,K0 ,Jf4
LPR R4,[HOI CMP P1J?4
MOVIT
CMP E2.154
MOVCT P2.P4
ADD CMP R3H
BIT IOOP E .
APEA D r DiTA,PEADON1Y
DAT DCD ll,-2#35M7,96.63.12B,-23
END
程序运行结果截图: