实验二 汇编语言程序设计实验

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Num
DCD 10
END
实验报告要求:
z 实验报告内容包括实验目的、实验设备、实验内容、实验结果和实验总结。 z “实验内容”部分要求通过分析三个参考程序,画出程序流程图,不要求抄
写源程序代码。
1.4 实验参考程序
1、求一个数的阶乘(64位结果):
AREA EXP1,CODE,READONLY CODE32 ENTRY
MOV
R8 , #20
MOV
R9 , #0
SUB R0,R8,#1
Loop
MOV
R1 , R9
UMULL R8 , R9 , R0 , R8
MLA
R9 , R1 , R0 , R9
实验二 汇编语言程序设计实验
1.1 实验目的
1.进一步掌握使用ADS开发、调试ARM汇编语言程序的方法; 2.掌握ARM汇编语言程序的基本结构和常用的伪操作; 3.掌握实现ARM汇编语言分支、循环程序结构的方法,理解指令条件码的 意义和使用方法。
1.2 实验设备
硬件:PC 机一台。 软件:Windows XP系统,ADS1.2 集成开发环境。
ADC R9,R9,#0
SUBS R2,R2,#1
BNE loop2
stop
B stop
END
3. 选择排序
AREA Select_Sort, CODE, READONLY ; 声明代码段 Select_Sort
ENTRY LDR R0, =Datas LDR R1, =Num
; 标识程序入口 ; 输入数据首地址 ; 数据个数
STR R4, [R3]
B
Sort_L1
Sort_Finish
Stop
B
Stop
ALIGN
Datas
DCD 0xAABBCC11, 0xAABBCC66, 0xAABBCC77, 0xAABBCC99, 0xAABBCC22
DCD 0xAABBCC33, 0xAABBCC55, 0xAABBCC44, 0xAABBCC88, 0xAABBCC00
1.3 实验内容
在ADS下编写、调试以下程序: 1.求一个数的阶乘(64位结果) 用ARM汇编语言设计程序实现求20!,并将其64位结果放在[R9:R8]中。 2.对数据区进行64位结果累加操作。 先对内存地址0x3000开始的100个字内存单元填入0x10000001~0x10000064 字数据,然后将每个字单元进行64位累加结果保存于[R9:R8]。 3.选择排序 对一个整数数组采用选择排序算法进行排序,结果仍旧放到源数组的位置。
BEQ Sort_Finish
MOV R2, R0
; R2 表示当前指针位置
MOV R3, R0
源自文库
; R3 表示当前最小数据的位置
Sort_L2
LDR R5, [R2, #4]!
; 取出指针所指的数据
CMP BLT MOV
R4, R5 Sort_L3 R3, R2
; 该数据与当前最小数据比较 ; 如果当前所指数据小于当前最小数据 ; 更新当前最小数据
MOV R4, R5
Sort_L3 TEQ
R1, R2
; 对当前位置的判断是否结束
BNE Sort_L2
Sort_L4 TEQR0, R3
; 如果当前位置的判断结束 ; 检查当前最小数据的位置是否就是当前位置
BEQ Sort_L1
SWP R4, R4, [R0]
; 把当前最小数据和当前位置的数据交换
LDR R1, [R1]
Sel_Sort MOV R1, R1, LSL #2
; 将数据个数转化为数据尾地址
SUBR1, R1, #4
ADD R1, R0, R1
SUBR0, R0, #4
Sort_L1
LDR R4, [R0, #4]!
; R0 表示当前位置,R4 当前最小数据
TEQR1, R0
; 检查是否排序结束
SUBS
R0 , R0 , #1
BNE B. END
Loop
2. 对数据区进行64位结果累加操作
AREA NUMBERS,DATA,READWRITE
dataBuff
SPACE 400
AREA LEIJIA,CODE,READONLY
ENTRY
CODE32
BEGIN
LDR R0,= dataBuff
MOV R1,#0x10000001
MOV R2,#100
loop1
STR R1,[R0],#4
ADD R1,R1,#1
SUBS R2,R2,#1
BNE loop1
LDR R0,= dataBuff
MOV R9,#0
MOV R8,#0
MOV R2,#100
loop2
LDR R1,[R0],#4
ADDS R8,R8,R1
相关文档
最新文档