单片机实验
实验 汇编语言程序设计
一、实验目的
1. 熟悉编写和调试语言程序的方法,提高编程技巧。
2. 掌握用软件实现几种码制之间的转换。
二、实验任务
编写完整汇编语言程序:
1. 从键盘输入两个4位十进制正数,转换成二进制数后,对这两个数进行相加、相乘运算,并将结晶十六进制数形式显示在屏幕上。
2. 键盘输入两个4位十进制正数,转换成压缩BCD码后,对这两个数进行相加、相乘运算,并将结果以十进制形式,显示在屏幕上。
三、实验说明
1. 编程要求采用模块化结构。
任务1的程序流程图参见图4-1所示。
每个功能模块采用子程序的编程方法。其中包括下述7个子程序。
(1)始化子程序:完成整个程序的有关初始准备工作(如数据寄存器的设置等)。
(2)清屏子程:完成清屏功能。
(3)显示提示子程
该子程序用到DOS的置光标和显示功能,要求:
在输入第一个数据前,在第5行10列处显示“please input the first numbet:”
在输入第二个数据前,在第10行10列处显示“please input the second numbet:”
(4)输入数据子程
接收从键盘输入十进制数据,数据长度≤4位。
由于十进制数只有0~9十个数码,因此要求对输入的字符进行判断,若输入字符中含有非数字ASCII码,应在20行10列处提示“Invalid number!Input again:”,然后重新输入数据。
(5)数据转换子程序
由于键盘输入的字符是ASCII码,而CPU只能对二进制、压缩BCD码、非压缩BCD码进行运算,故该子程序完成将输入的数据转换成二进制数功能。
(6)算术运算子程
将两个二进制数进行相加、相乘运算。
(7)显示结果子程
运算结果以二进制形式存放,要以十六进制形式显示出来。
该子程序完成十六进制形式显示功能,要求显示前给出一定提示。
如:显示“和”之前,显示SUM=
显示“积”之前,显示MUL=
图4-1 任务1流程图
2. 注意各子程的入口,出口参数的设置,可采用变量进行参数传递。
3. 任务2的流程与任务1基本相似,由于采用的是BCD码形式,其数据转换子程、算术运算子、结果显示子程应采用BCD码形式。
四、问题思考
1. 各子程的入口参数和出口参数如何设计?
2. 如何在主程和子程间进行参数传递?
五、实验报告
1. 画出主程序、各子程序流程图,给出程序清单,并加适量注释。
2. 小结模块化编程设计方法。
全部0条评论
快来发表一下你的评论吧 !