微机原理与嵌入式系统ARM汇编程序作业解析

需积分: 0 0 下载量 71 浏览量 更新于2024-08-05 收藏 72KB PDF 举报
"微机原理与嵌入式系统课程的第7章作业,包含3个练习题目。练习1是编写ARM汇编程序,根据R3和R2的比较结果决定R3的值。练习2统计数据段中10个数据的偶数个数并放入R0。练习3统计10个有符号数中的正数个数,结果同样存入R0。" 在微机原理中,嵌入式系统的程序设计通常涉及汇编语言,这是对计算机硬件直接操作的低级语言。本资料提供的是中国科学技术大学2020年春季学期微机原理课程的作业,由学生胡睿完成。作业分为三个部分,每个部分都要求编写ARM汇编程序来实现特定功能。 第一部分的习题7.3中,目标是编写一个程序,根据R3和R2的大小关系来更新R3的值。如果R3大于R2,则R3加10;否则,R3加100。实现这个功能的关键指令是`CMP`(比较)用于比较R3和R2的值,`ADDHI`(无符号高于)和`ADDLS`(无符号低于或相同)根据条件标志进行不同的加法操作。 第二部分的习题7.4要求统计数据段中10个数据元素的偶数个数,并将结果存储在R0中。程序通过定义一个10字节的数据段`Array`,然后使用`LDR`(加载)指令读取数据,`ANDS`(带符号位与)检查最低位(即奇偶性),`CMP`比较结果并用`BNE`(不等于)分支指令处理偶数情况。最后,使用`BCS`(进位设置)或`BFC`(清除进位)指令来控制循环的退出,并在结束时将计数值(偶数个数)放入R0。 第三部分的习题7.5任务是统计10个有符号整数中正数的个数,结果同样放入R0。这需要读取数据,检查其正负性,可能使用`LDR`加载数据,`CMP`进行比较,以及使用分支指令如`BGT`(大于)处理正数情况。最后,将正数的个数存入R0。 这些作业展示了基本的ARM汇编编程技巧,包括数据处理、条件判断和循环控制,这些都是理解和开发嵌入式系统所必需的基础知识。通过解决这些问题,学生可以深入理解微处理器的工作原理以及如何有效地编写针对特定硬件的代码。