你好,欢迎来到经管之家 [登录] [注册]

设为首页 | 经管之家首页 | 收藏本站

循环结构的程序设计方法(一)_电子信息工程毕业论文范文

发布时间:2015-03-12 来源:人大经济论坛
循环结构的程序设计方法(一)_电子信息工程毕业论文范文 实验报告撰写要求 实验操作是理论联系实际的重要环节,实验报告必须在科学实验的基础上进行,实验报告的撰写是知识系统化的吸收和升华的过程,实验报告应该体现完整性、规范性、正确性、有效性。现将撰写实验报告的有关内容说明如下: 1.实验名称 2.实验目的 本次实验所涉及并要求掌握的知识点。 3.实验内容与实验步骤 实验内容、原理、原理图分析及具体实验步骤。 4.实验环境 实验所使用的器件、仪器设备名称及规格。 5.设计实验数据表格 6.实验过程与分析 详细记录在实验过程中发生的故障和问题,并进行故障分析,说明故障排除的过程及方法。 根据具体实验,记录、整理相应数据表格、绘制曲线、波形图等,并进行误差分析。 7.实验结果总结 对实验结果进行分析,完成思考题目,总结实验的心得体会,并提出实验的改进意见。 注:1.前5项必须在做实验之前完成,并由指导教师签字后才能做实验。 2.对于学生自拟实验题目、参与科研、创新实验等形式实验项目的实验报告可采用论文、实验总结报告等形式完成。 3.此封皮标准页面为16K 实验名称: 循环结构的程序设计方法 实验目的: 1.掌握循环结构的程序设计方法; 2.通过循环结构的程序设计,加深理解程序设计的步骤,掌握较复杂应用的设计方法。 实验环境: PC计算机 MPLAB编程环境 实验原理 : 实验一:编程实现两个16位二进制数的乘法运算(用部分积右移的方法) 本实验通过运用部分积右移法进行两个十六位数的乘法运算。 部分积右移:首先,将两个待乘数据放入寄存器A和B。然后将乘数B所在的寄存器按位右移,使最后一位移入状态寄存器的进位标志位。接下来,判断进位标志位是否为1,如果为1,那么将被乘数与结果相加(初始值为零),并将结果右移一位,为下一次相加做准备;反之,如果进位标志是0,那么,部分积不与任何值相加,但是仍然要向右移动一位,为下面的加法做准备。这样,利用循环程序,共循环16次,使乘数所有位都进入过状态寄存器标志位,这样,就将结果值进行了16次右移,并在特定的位置加上了原数据,得到了最后的结果,结果由于是32位的,所以放入两个寄存器所组成的单元之中,在本实验里,放入了C和D寄存器。 实验二:(选作)编程实现两个16位二进制数的乘法运算(用被乘数左移的方法) 本实验通过运用被乘数左移法进行两个十六位数的乘法运算。 被乘数左移:首先,将两个待乘数据放入寄存器AB和C。由于在运算过程中需要移动被乘数AB共16次,AB本身又是一个16位的数据,那么,AB应该有四个寄存器组成,即AB为一个32位的寄存器(由AH AL BH BL构成,其中,B存放高八位,A存放低八位)。然后将乘数B所在的寄存器按位右移,使最后一位移入状态寄存器的进位标志位。接下来,判断进位标志位是否为1,如果为1,那么将被乘数与结果相加(初始值为零),并将被乘数左移一位,为下一次相加做准备;反之,如果进位标志是0,那么,被乘数不与结果值相加,但是仍然要向左移动一位,为下面的加法做准备。这样,利用循环程序,共循环16次,使乘数所有位都进入过状态寄存器标志位,这样,就将被乘数进行了16次左移,并在特定的位置加到了结果值数据上,得到了最后的结果,结果由于是32位的,所以放入两个寄存器所组成的单元之中,在本实验里,放入了D(低八位)和E(高八位)寄存器。 但是,不论应用那种方法,都有不足之处,那就是,如果计算的数值结果超过了32位,也就是在进行最后一次加法运算时,产生了溢出,那么,结果将产生错误。也就是说,这两个程序都不可能完成所有16位的数据的乘法运算。 实验程序: 实验一: AL EQU 10 AH EQU 11 BL EQU 12 BH EQU 13 CL EQU 14 CH EQU 15 DL EQU 16 DH EQU 17 COUNTER EQU 18 STATU EQU 3 CARRY EQU 0 ORG 1FFH GOTO MAIN ORG 0H MULT RRF BH RRF BL BTFSC STATU,CARRY CALL ADD RRF CH RRF CL RRF DH RRF DL DECFSZ COUNTER GOTO MULT RETLW 0 ADD MOVF AL,0 ADDWF CL BTFSC STATU,CARRY INCF CH MOVF AH,0 ADDWF CH RETLW 0 SETU MOVLW 13H MOVWF AL &
经管之家“学道会”小程序
  • 扫码加入“考研学习笔记群”
推荐阅读
经济学相关文章
标签云
经管之家精彩文章推荐