ARM7汇编语言程序设计
更新时间:2024-01-12 11:53:01 阅读量: 教育文库 文档下载
- ARM7汇编语言程序设计推荐度:
- 相关推荐
西 安 邮 电 大 学
(计算机学院)
课内实验报告
课程名称: 嵌入式系统开发 实验名称: ARM7汇编语言程序设计
专业名称: XXXX 班 级: XXXX 学生姓名: XXX 学号(8位): XXX 指导教师: XXX
实验日期: XXXX 年 XX 月 XX 日
一. 实验目的及实验环境
实验目的:1.了解ADS1.2集成开发环境及ARMulator软件仿真。
2.掌握ARM7TDMI汇编指令的用法,并能编写简单的汇编程序。 3.掌握指令的条件执行以及使用LDR/STR指令完成存储器的访问 实验环境:CodeWarrior for ARM Developer Suite 二. 实验内容
1.编写程序,实现1到10的自然数的累加和。 2.找出10个数中的最大值与最小值。 3.从自然数1开始累加,直到累加和大于3000为止,统计被累加的数的个数和累加和。
4编写程序,将乱序的5个无符号数排序。 三.方案设计
①创建工程
启动ADS1.2,使用ARM Executable Image工程模板建立一个工程Project2。 ②添加源文件,编辑源代码
建立汇编文件TEST2.S,输入源代码,参考源代码附后,然后添加到工程中。 ③链接选项配置
设置工程链接地址RO Base为0x40000000,RW Base为0x40003000。设置调试入口地址Image entry point为0x40000000。
④编译链接工程
选择Project--〉Debug,启动AXD进行软件仿真调试。 ⑤调试工程
打开寄存器窗口,选择Current项监视R0和R1的值。 四.测试数据及运行结果 1.求和
2.求最大值与最小值
3.与3000比较大小
4.排序
五.总结
1.实验过程中遇到的问题及解决办法;
刚开始写完代码的时候,make完以后打不开AXD页面,最后将工程重新打开了一遍; 添加寄存器的时候,其实已经添加上了,但是没有看见,然后就重复添加造成错误;在写代码的时候忘了将结果放在哪个寄存器中,结果在一个一个找,在询问同学后解决了问题; 在做实验的时候,不会加断点,在查询相关书籍后掌握了此部分知识。
2.对设计及调试过程的心得体会 在这次实验中学到了很多知识,但是在实验的过程中遇到了好多问题,写代码的时候总是出错,运行不出来,由于知识掌握的不是很好,不会调试代码,到最后在同学的帮助下完成了实验,所以这次试验后我也明白了合作在实验中起了很重要作用,在遇到困难自己解决不了的时候,要多询问询问同学和老师,这样才能真正学到知识,才能真正的进步。
六.附录:源代码 1.1到10的累加和
AREA SUM2,CODE,READONLY ENTRY CODE32 start
MOV R0,#1 LDR R1,=sum LDR R2,=0 LOOP
ADD R2,R2,R0 ADD R0,R0,#1 CMP R0,#11 BNE LOOP
STREQ R2,[R1] stop
MOV r0,#0x18 LDR r1,=0x20026 SWI 0x123456
AREA Data,DATA,READWRITE
sum DCD 0 END
2.最大值与最小值
AREA max,CODE,READONLY
ENTRY CODE32
num EQU 9 start
LDR R0,=x LDR R1,=y LDR R2,=z
LDR R3,=num LDR R4,[R0] LDR R5,[R0] compare
ADD R0,R0,#4 LDR R6,[R0] CMP R4,R6 MOVCC R4,R6 MOVCS R5,R6
SUBS R3,R3,#1 BNE compare STREQ R4,[R1] stop
MOV r0,#0x18 LDR r1,=0x20026 SWI 0x123456
AREA Data,DATA,READWRITE
x DCD 59,37,13,67,107,12,231,1,42,222 y DCD 0 z DCD 0 END
3. 累加求和到3000
AREA SUM,CODE,READONLY ENTRY CODE32 Start
LDR R0,=n LDR R1,=sum LDR R3,=0 LDR R4,=0 LDR R5,=3000 continue
ADD R4,R4,#1
ADD R3,R3,R4 CMP R3,R5 BCC continue STRCS R3,[R1] STRCS R4,[R0] stop
MOV r0,#0x18 LDR r1,=0x20026
SWI 0x123456 AREA Data,DATA,READWRITE n DCD 0 sum DCD 0 END 4.排序:
AREA Bibble,CODE,READONLY ENTRY start
LDR R1,=num MOV R2,#0 LDR R4,[R1] SUB R4,R4,#1 SUB R1,R1,#4 outer
LDR R0,=src inner
LDR R5,[R0] LDR R6,[R0,#4] CMP R5,R6 STRGT R6,[R0] STRGT R5,[R0,#4] ADD R0,R0,#4 CMP R0,R1 BNE inner ADD R2,R2,#1 SUB R1,R1,#4 CMP R2,R4 BNE outer stop
MOV R0,#0X18 LDR R1,=0X123456
AREA BlockData,DATA,READWRITE src DCD 18,16,4,2,12,5,6,8,1,3 num DCD 10 END
正在阅读:
ARM7汇编语言程序设计01-12
PEP五年级英语2单元教学设计10-18 - 图文05-23
矿车运送炸药安全技术措施12-30
关于举办中青年干部培训班的通知12-30
基于建设工程现场施工管理重要性分析与论文08-11
当前中药材中药饮片常见质量问题以及监管对策(幻灯)04-14
我国社会保障基金投资管理模式综述05-08
第三章 - 作业2016 热处理12-01
公司实习生自我鉴定参考范本08-02
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 汇编语言
- 程序设计
- ARM7
- 重庆大学研究生在校期间发表高水平论文奖励申报实施办法
- 如何在聋校语文教学中渗透思想品德教育
- 江西省临川一中2012届高考冲刺模拟试卷文科数学
- 2009-2012中级经济师经济基础真题
- 专题1.2+匀变速直线运动(真题精讲)-2019领军高考物理真题透析一轮复习+Word版含解析
- 薄片鉴定
- 林清玄 - 窗户和镜子
- 美的空调显示E4故障是什么意思,美的空调显示E4故障报警怎样解决排除,美的空调显示E4故障维修办法
- 3.1全球定位系统的应用每课一练(中图版必修3)
- 地球物理勘探论文
- 维修电工高级操作技能考核评分记录表
- 高空作业考试题库(附答案)
- 孙子兵法与执政艺术
- 2017-2022年中国汽车盘式制动器产业深度调研与投资前景评估报告(目录)
- 嘉兴市人民政府关于印发《嘉兴市征收农村集体所有土地管理暂行办法》的通知嘉政发〔2009〕70号,2009年8
- 水污染控制课程设计--垃圾填埋场渗滤液处理站设计方案
- 轻型客车驱动桥设计开题报告
- 河南“十三五”重点-LNG加气站扩建项目可行性研究报告
- 年级组管理制度
- 最新高考化学试题分类汇编 化学实验