汇编语言 完全数 课程设计报告书

合集下载

汇编语言程序设计实验报告

汇编语言程序设计实验报告

汇编语言程序设计实验报告汇编语言程序设计实验报告引言:汇编语言是计算机中最基本的语言,通常用于处理硬件相关问题。

在这个实验中,我们学习了汇编语言的基础知识和编程技巧,并实践了用汇编语言编写程序的方法和技巧。

以下是我们的实验报告。

正文:1. 实验环境我们使用的实验环境是Intel 8086微处理器与高级汇编语言。

微处理器使用的是PCB-512主板,而高级汇编语言是MASM。

2. 实验目的我们的实验目的主要是学习汇编语言的基础知识和编程技巧,包括了汇编语言的寄存器、指令、内存管理等方面的知识。

我们的另一个目的是掌握汇编语言的常用编程技巧,能够独立完成一些简单的汇编程序。

3. 实验内容我们的实验内容主要包括以下几点:(1)学习汇编语言的基础知识,包括寄存器、指令、内存管理等方面的知识。

(2)掌握汇编语言的常用编程技巧,包括数据输入输出、运算、跳转等基本操作。

(3)实践用汇编语言编写程序,如计算器、菜单等实用程序。

(4)了解8086微处理器的结构和原理。

4. 实验过程在这个实验过程中,我们完成了以下几个程序:(1)计算器计算器是一个简单的程序,主要用于实现两个数之间的加、减、乘、除等基本运算。

我们通过输入输出指令、存储指令等指令实现了这个程序的功能。

(2)菜单菜单是一个实用程序,主要用于展示一个简单的菜单并实现用户选择相关功能的功能。

我们使用了汇编语言中的跳转指令、输入输出指令等实现了这个程序。

5. 实验结果在我们的实验中,我们成功完成了上述两个程序。

我们通过输入输出指令、存储指令等指令实现了这个程序的功能。

6. 实验总结在这个实验过程中,我们学习汇编语言的基础知识和编程技巧,并实践了用汇编语言编写程序的方法和技巧。

我们通过编写计算器和菜单等简单实用程序,加深了对汇编语言的理解和认识。

我们认为这个实验对我们今后的学习和工作都有很大的帮助。

结论:通过这个实验,我们学习了汇编语言的基础知识和编程技巧,并实践了用汇编语言编写程序的方法和技巧。

数字方阵--汇编语言课程设计报告

数字方阵--汇编语言课程设计报告

课程设计报告课程名称:汇编语言程序设计课题名称:数字方阵程序姓名:朱海清()班级:计科0701 指导老师:卢清平报告日期: 2010年 7月目录第一章前言.............................. 错误!未定义书签。

摘要 ....................................... 错误!未定义书签。

基本功能要求 ................................ 错误!未定义书签。

第二章程序设计.......................... 错误!未定义书签。

题目基本内容 ................................ 错误!未定义书签。

系统流程框图 ................................ 错误!未定义书签。

课程设计的具体内容说明 ...................... 错误!未定义书签。

课程设计中关键内容的分析设计说明 ............ 错误!未定义书签。

运行截图 .................................... 错误!未定义书签。

第三章课程设计小结...................... 错误!未定义书签。

参考文献................................. 错误!未定义书签。

附录: .................................... 错误!未定义书签。

源程序代码 .................................. 错误!未定义书签。

第一章前言摘要本次课程设计,是使用汇编作为开发语言实现功能要求。

总所周知,汇编是一个低级语言,对硬件有很大的依赖性,在使用上也不及高级语言方便,但其在执行效率上比高级语言有很大的优势。

本次课程设计,一方面让我们再次熟悉汇编指令,再次对算法的设计有一定的要求。

另一方面让我们对较大汇编程序的编写有一个清晰的过程,学习把一个教大问题分解成若干个小问题,即子程序是一个良好的编程习惯。

汇编语言程序设计报告

汇编语言程序设计报告

《汇编语言》课程设计报告专业计算机科学与技术学生姓名张竹青班级Z计算机151学号1560704132任课老师王志宏完成日期2017年12月29日目录1概述 (1)1.1 设计目的 (1)1.2 设计内容 (1)2系统需求分析 (1)2.1 系统目标 (1)2.2 主体功能 (2)2.3 开发环境 (2)3 系统概要设计 (2)3.1 系统的功能模块划分 (2)3.2 系统流程图 (4)4系统详细设计 (5)4.1界面设置 (5)4.2选择算法设置 (5)4.3十进制转换设置 (5)5测试 (6)5.1 测试方案 (6)5.2 测试结果 (6)6小结 (7)参考文献 (9)实现加减乘除四则运算的计算器1 概述1.1 设计目的使用汇编语言,通过实现简单计算器的一般功能,如加、减、乘、除的计算来了解并掌握DOS系统功能的调试方法,学会画出编程的具体流程图,同时在程序设计过程中熟悉各种指令的应用和意义,以及如何进行上机编辑、汇编、连接和调试。

本课程设计也是对课堂上所学的基本理论知识和程序设计方法的巩固和深化,提高我们的编程思想、分析问题和解决问题的综合应用能力,能够编写较复杂的应用程序,最终达到熟练地掌握结构化程序设计技术和编写汇编源程序的基本方法的目的。

1.2 设计内容设计一个能实现加、减、乘、除计算的程序,要求该程序接受从键盘输入的十六进制数,当程序执行时需在文件名后直接跟上计算表达式,每当读到一个有效的表达式时对表达式进行相应的运算后,输出用十进制数或十六进制数表示的运算结果,如在命令提示符下执行结果如下:c:\tasm>js 3+252 系统需求分析2.1 系统目标本次汇编语言课程设计的最终目的是要实现一个简单的加减乘除四则运算的计算器,要求编写一个程序,每运行一次可执行程序,可以实现数的加减乘除四则运算。

具体功能如下:(1)调用中断把要做运算的两个数输入到屏幕上并用程序将他们存储起来(2)判断用户所输入的运算是四则运算中的哪一种运算(3)判断运算过程中是进位还是借位(4)选择用何种输出方式(5)实现清屏2.2 主体功能要求该程序接受的是十六进制数,执行相应的计算后,计算结果以十六进制数或十进制数输出。

课程设计报告汇编语言

课程设计报告汇编语言

课程设计报告
(本科)
课程:汇编语言
学号:1210461030 1210461016 姓名:豆建华钱爱萍
班级:12级计算机科学与技术系(2)班教师:吴昊
时间:
计算机科学与技术系
结果与分析(可以加页):
(1)提示界面
进入提示界面“WELCOME TO TIMEMASTER”根据提示请输入“D”或“T”或“Q”。

图2 提示界面图
(2)显示日期
输入“D”显示当前日期
图3显示日期图
(3)显示时间
输入“T”显示当前时间
图4显示时间图
(4)退出程序
输入“Q”退出程序
图5退出程序图
说明:以上截图为此次实验运行出来时的主要截图,其中图1为本实验的主流程图,分为三个部分,分别是日期的显示,时间的显示以及程序的退出。

图2是在屏幕中央显示提示信息(提示用户输入“D”或“T”或“Q”)。

图3是取当前系统日期:功能号为2AH,返回值送入CX,DX寄存器中。

图4是取当前系统时间:功能号为2CH,返回值送入CX,DX寄存器中。

《汇编语言》实验报告

《汇编语言》实验报告

《汇编语言》实验报告实验名称:汇编语言实验报告实验目的:通过实验了解汇编语言的基本概念、语法结构和程序设计方法,掌握汇编语言的编写方法。

实验时间:2024年1月1日实验地点:实验室一、实验背景汇编语言是计算机硬件和软件之间的桥梁,通过汇编语言可以直接操作计算机的底层硬件。

汇编语言是一种低级语言,使用汇编语言可以实现对计算机内存、寄存器等硬件资源的直接操作,从而实现程序的功能。

本实验通过编写汇编语言程序,加深对汇编语言的理解。

二、实验过程1. 确定实验环境:使用DOSBox模拟DOS环境进行汇编程序编写和调试。

2. 编写第一个汇编程序:编写一个简单的汇编程序,将字符串“Hello, World!”输出到屏幕上。

3.程序分析:a.定义要输出的字符串,将字符串存储在数据段中。

b.设置段寄存器,将数据段地址加载到DS寄存器中。

c.设置显示模式和光标位置。

d.将字符串逐个字符输出到屏幕上。

e.关闭显示模式。

4. 编译运行:使用汇编语言的编译器将汇编程序转换成机器码,并在DOSBox中运行程序。

5.调试程序:根据程序运行结果和分析,调试程序中存在的错误,并进行改正。

三、实验结果与分析经过多次编写和调试,我们成功实现了将字符串“Hello, World!”输出到屏幕上的功能。

通过程序分析和调试过程,加深了对汇编语言的理解和掌握。

四、实验总结通过本次实验,我们深入了解了汇编语言的基本概念、语法结构和程序设计方法。

通过实际编写汇编语言程序,对汇编语言的编写方法有了更加深入的认识。

同时,通过调试程序的过程,我们也提高了自身的问题解决能力和分析能力。

在今后的学习和工作中,我们将继续学习和深入研究汇编语言,提高自己的编程能力和创新思维能力。

总体而言,本次实验给我们带来了很大的收获,我们以后将更加努力地学习汇编语言,提高自己的编程水平,为以后的学习和工作做好充分的准备。

汇编语言课程设计报告报告

汇编语言课程设计报告报告

湖南农业大学课程设计报告学院:班级:姓名:学号:课程设计题目:编密码课程名称:汇编语言与微机原理评阅成绩:评阅意见:成绩评定教师签名:日期:年月日目录概述 (3)一设计内容与要求 (3)二设计思想 (3)三程序流程图 (4)四程序源代码 (5)五效果图 (7)六设计过程中遇到的问题及解决方法 (7)七设计心得 (7)编密码概述汇编语言:是用英文缩写形式的助记符书写指令。

汇编语言是一种面向CPU指令系统的程序语言,它采用指令系统的助记符来表示操作码和操作数,用符号地址表示操作数地址。

用汇编语言编写程序在输入计算机后,需要将其翻译成目标程序,计算机才能执行相应指令,这个翻译过程成为汇编,完成汇编任务的程序称为汇编程序。

所以我在MASM汇编程序中进行汇编,通过相应的代码来调用相应的指令实现编密码。

一、设计要求(小标题一律用宋体小四加粗)要求:按照以下规律编密码:1.字母A变为E,a变为e即是字母变成其后面的第4个字母。

2.但Ww变Aa,Xx变Bb,Yy变Cc,Zz变为Dd.3.非字母不变如1234567890,!@$4.并可以循环转换5.例如“123CHINA@”变为“123GLMRE@”二、设计思想首先,先定义两个缓存区,一个用来存放输入的密码(BUF2),一个用来存放变换后的密码(BUF3)。

先输入一个十位数内的密码,然后一一对一个个字符进行判断。

先判断ascall是否小于41H,如果是则不是字母那就不变换直接转到read1,存入BUF3。

如果大于41H在判断是否大于61H即判断是不是小写的,如果小于的话在判断大于5bH吗?如果大于则不是字母那就不变换直接转到read1,存入BUF3。

如果小于的话,在判断是不是大于w的ascall,如果大于就转到read3,减22在,存入buf3.否则转到read4,加4在存入BUF3。

如果大于等于61H的话,同样的道理,判断是否大于W,如果大于在判断大于7AH吗。

汇编课程设计报告正文

汇编课程设计报告正文

目录第1章需求分析 (1)1.1 设计题目 (1)1.2 设计目的 (1)1.3 程序运行环境及开发工具 (1)1.3.1 运行环境 (1)1.3.2 开发工具 (1)1.4 课程设计任务及要求 (1)1.4.1 设计任务 (1)1.4.2 设计要求 (1)第2章概要设计 (2)2.1 设计思想和原理 (2)2.1.1 设计思想 (2)2.1.2 设计原理 (2)2.2 系统流程图 (2)第3章详细设计 (5)3.1 数据段的设计 (5)3.1.1 数据段定义(DATA SEGMENT) (5)3.2 主程序的设计与实现 (5)3.3 子程序的设计与实现 (5)3.3.1 键盘输入成绩模块 (5)3.3.2 冒泡排序模块 (5)3.3.3,数据输出模块 (6)第4章系统调试与操作说明 (7)第5章设计中存在的问题及解决方法 (9)第6章总结与体会 (10)参考文献: (10)附录:源程序 (12)第1章需求分析1.1 设计题目成绩分段统计(2)1.2 设计目的在此课程设计中,通过对成绩统计分段程序的设计,来实现键盘输入,排序,输出功能,熟悉常用系统功能调用和常用算法的实现。

如01H功能调用,02H 功能调用以及BIOS功能调用的09H调用;掌握常用排序算法的汇编实现,如本设计中的冒泡排序算法实现降序排列。

汇编语言程序设计课程设计是计算机教学实践基础上的一次重要的大型实验,也是对汇编语言程序设计课程所学理论知识的深化和提高。

因此,要求学生能综合应用所学知识,设计与调试出具有实际功能的应用程序,并且在实验的基本技能方面上进行一次全面的训练。

培养学生综合运用所学知识独立完成汇编程序课题的能力,使学生能够比较全面巩固和应用课堂中所学的基本理论和程序设计方法,能够比较熟练完成汇编程序的设计和调试。

提高学生对工作认真负责,一丝不苟,和在遇到难题时的协同合作的素质,培养学生从资料文献,科学实验中获得知识的能力,初步培养工程意识和创新能力,培养学生勇于探索,严谨推理,实事求是的素质。

计算比赛成绩汇编语言课程设计报告书

计算比赛成绩汇编语言课程设计报告书

计算比赛成绩汇编语言课程设计报告书一、设计内容与设计要求1.设计内容:经过本周的课程设计,学生能够巩固所学的基础知识,并能够使学生更加熟练运用汇编程序设计语言来掌握综合汇编程序设计的方法和过程,以及为设计其它应用软件提供帮助,进而提高学生的软件设计能力。

1、编制一计算比赛成绩的程序,要求完成以下功能:(1) 9名评委,每个评委给分范围为0~10(整数);(2) 9名评委给分中,去掉一个最高分和一个最低分,剩余7名评委的平均分即为参赛者的得分(精确到小数点二位);(3)将得分在光标位置处显示出来。

2、编制一程序,要求接收从键盘输入的一个班的学生成绩,并存放于30字的grade数组中,各数据的格式为:学号,成绩1,成绩2,…,成绩5然后根据grade中的学生成绩,把学生名次填入rank数据组中,并显示出来,格式为:学号,名次3、利用INT 1CH(大约每秒中断18.2次)编写一个中断驻留程序,要求在屏幕的右上角显示计算机中当前系统时间,显示格式为时:分:秒:1/100秒4、输入一个菱形的两条对角线长,在屏幕上用‘*’号画出一个彩色的菱形。

5、设置图形方式并显示彩条,要求:选择背景色为蓝色,调色板为0,然后每行显示一种颜色,每四行重复一次,一直到整个屏幕都显示出彩条2.设计要求:掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一些实际的问题,为将来编写软件积累一些典型的案例处理经验。

1.设计正确,方案合理。

2.界面友好,使用方便。

3.程序精炼,结构清晰。

4.设计报告5000字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。

5.上机演示。

6.按学号顺序选课题号,并在规定的时间内独自完成相关课题的汇编源程序编写、调整和运行。

源程序及编译生成各文件均保存在软盘中;7.按本任务书的要求,按附录的要求编写《课程设计报告》(Word文档格式)。

并用A4的复印纸打印并装订;二、进度安排第 1 周:星期1星期2星期3星期4附:课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。

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

课程设计任务书学生姓名王丽专业班级软件0302班指导老师陈天祥工作单位武汉理工大学题目:打印完全数一个数,若约数(不含它本身)的和恰好等于它本身就称为完全数初始条件:理论:学完汇编课程,掌握汇编语言的使用。

实践:计算机实验室提供计算机及软件环境。

如果自己有计算机可以在其上进行设计。

要求完成的主要任务:1. 本次课程设计着重于理论设计,同时培养动手能力。

要求运用自己所学知识进行设计实现,体现自己的知识掌握水平。

所作设计需进行论证,一方面是从理论上进行推理验证,另一方面是实验论证。

2. 阅读有关的参考资料,熟悉开发工具,运用软件工程设计方法,进行系统总体分析与设计, 规划出系统的总体机构,每个功能的分布情况,以形成系统的框架设计。

3. 程序用汇编语言开发完成, 严禁抄袭(发现后抄袭者和被抄袭者一律不及格)。

4.完成整个程序的设计及调试、测试工作后,应提供相应的课程设计报告书及程序总体分析与算法设计和源程序代码等。

5.课程设计报告书内容:(1) 设计题目 (2) 设计要求 (3) 设计思路及程序清单 (5) 运行结果 (6) 心得体会6.要求按格式规范撰写课程设计报告文档, 文档中包括系统结构图,代码设计说明以及各功能模块程序的设计说明和各功能选项的使用要求及条件,各输入输出数据的约束条件及代码的使用等。

7.课程设计报告格式应尽可能规范,易读易懂,说明问题;学生自己排版、打印全部课程设计报告书内容;学生要按指定时间上交课程设计报告书。

时间安排:1、12月26日至12月27日接受课程设计, 阅读有关的参考资料,熟悉开发工具,运用软件工程设计方法,对设计题目进行总体分析与算法设计。

.2、12月28日至12月29日编写程序, 到实验室进行程序调试。

3、12月30日至12月31日继续到实验室进行程序调试、完善。

撰写课程设计报告书,到实验室进行编缉排版, 交课程设计报告书。

指导教师签名: 年月日系主任(或责任教师)签名: 年月日1.设计题目打印完全数2.设计要求用汇编程序MASM,编写一个程序,打印10000以内的完全数。

若一个数的约数(不含它本身)的和恰好等于它本身,则该数是完全数。

用循环除法(除数从2到被检测数)循环判断2――10000的数是否是完全数。

根据题目,运用所学的汇编知识和程序设计知识,完善设计思路,尽量使程序完整,具有模块化,易懂;熟悉汇编程序环境,掌握汇编命令和汇编语言,增强动手能力;增强独立解决问题的能力。

3.设计思路3.1原始条件及参数:被除数以双字为单位,高16位保存在DX中,低16位保存在AX中,初始值为2;检测范围用n 来限定除数以字位单位,用count表示,保存在BX中,初始值为2约数和保存在CX中,初始值为13.2算法设计及流程图:3.2.1 主程序算法及流程图:初始条件:设i为被除数,j为除数,t为余数,c为约数和Int i=2 ; //被除数从2开始循环体:While (i<=10000) //求10000以内的完全数{ int j=2 , c=1; //除数从2开始,约数和初始为1While ( j<=i ) //除数小于被除数{ t = i mod j ; //求模If ( t==0){ c=j+c;} //如果能够整除,保存约数和j++ ;} //除数自增if (c==i)print i ;//打印完数i++ ;} //被除数自增退出:Exit3.2.2 print子程序算法及流程图初始条件:被除数保存在AX中,将除数设置为10 将BX,CX压入堆栈,保护现场循环体:被除数除以10,将余数压入堆栈,堆栈中数目加1继续除以10,直到被除数不可以再除弹出堆栈中的内容退出:Exit4.程序清单data segmentn dw 10000 ;求10000以内的完数count dw ? ;作为除数data endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,axmov n,2 ;从2开始判断是否视完数l1: mov count,2 ;cx保留约数和,初始值为1mov cx,1 ;bx作为除数,从2开始l2: mov ax,npush ax ;保存现场,保留ax的值mov dx,0 ;被除数的高16位置0div bxcmp dx,0jnz l3 ;dx保存余数,若余数不为0,则转向l3,继续除下一个除数add cx,bx ;若余数为0,则把除数相加l3: inc count ;除数加1pop ax ;ax出栈cmp ax,countjnz l2 ;比较被除数和除数,若相等,则转向l2,cmp n,cxjnz l4 ;比较约数和与被除数是否相等,若相等,转向l4,测试下一个数mov dx,0mov ax,ncall print ;调用子程序,打印完数,每显示一个完数,紧跟一个空格mov dl,' 'mov ah,02hint 21hl4: inc n ;测试2――10000的完数cmp n,10000jnz l1mov ah,4chint 21hprint proc ;打印子程序push cx ;保护现场push bxmov cx,0ah ;cx作除数,以10为基数mov bx,0 ;bx作计数器,计算压入堆栈的完数个数print_l1:mov dx,0div cxpush dx ;将余数压入堆栈保留inc bx ;压入数目增加1cmp ax,0jnz print_l1 ;反复调用print_11,直到被除数不能再除print_l2:pop dx ;循环弹出余数add dl,30h ;余数以ASCII码的表示mov ah,02hint 21h ;输出调用dec bx ;堆栈中数的个数减1jnz print_l2 ;弹出堆栈中所有的数pop bx ;还原现场pop cxretprint endp ;子程序结束code endsend start ;程序结束5.运行结果该程序是:查找10000以内的完全数,文件名为wanshu.asm,执行结果如下:6.心得体会6.1程序设计体会在程序设计的过程中,我体会到了一些程序设计的基本方法和设计技巧,这些有助于拓宽我的解题思路,一定程度上帮助我解决设计上存在的问题。

6.1.1算法设计在此过程中,除数,被除数,约数和的初始值的定义至关重要。

由于本程序要反复除以除数,并把余数与0比较,把约数进行相加,因此应该尽量控制程序作除法运算的次数,达到最快的运行速度。

在此程序中,我把除数的初始值设置为2,约数和的初始值设置为1,避免了被除数屡次除以1以及约数屡次从1开始相加。

每测试一个数字,除数都从2开始,循环除,直至达到被除数本身(根据题目要求,除数达到”被除数/2”即可满足循环条件)。

这影响了程序的运行速度,是这个程序的一个缺陷。

6.1.2程序编写的规范性编写程序要注意格式的规范性。

在此过程中,我的程序出现了前后不对应的情况,系统提示程序没有结束,经过检查才发现,最后缺少一个结束语句。

汇编的每一段都应该有开始和结束的标志;同时,使用汇编的语句时要注意简洁和清晰,当一种操作可以用不同的语句表示时(如loop 相当于dec 和jnz两个语句的组合),要比较不同代码的优缺点,被选择使用的语句应该能表现程序的结构性。

6.1.3合理使用寄存器由于要求打印10000以内的完数,理论上除数至少应该到达5000,用8位二进制表示此数是远远不够的。

但如果除数用16位表示,被除数将占用32位。

受到机器及运行环境的限制,无法使用386以上机型中的EBX,EAX,ECX,EDX 等寄存器,因此,我采用DX,AX分别保存被除数的高16位和低16位,对于除法运算的结果,使用系统默认处理。

商保存在AX中,余数保存在DX中;同时,利用累加器CX的特殊功能,用其保存约数和,以方便计算。

6.1.4合理使用堆栈在编写程序的过程中,我明显的感觉到寄存器不够用。

因此,我利用堆栈保护现场,保存相关的数据。

虽然入栈,出栈的操作频繁,可能会一定程度上延缓了程序的执行速度,但它解决了寄存器数量上的限制。

另外,由于除法计算的余数和商分别保存到DX和AX中,而AX在后续的程序中要使用到,因此要着重注意对AX的数据保存。

6.1.5变量的使用AX既要用来存放被除数,也需要存放除法所得的商,因此,我设置了变量n,通过”mov ax, n ”语句可以把待检测的数在需要时临时送入AX,冲掉AX内原来的值。

另外,我还设置了变量count,用寄存器BX保存除数,利用count的自增来实现除数的改变,通过”mov bx, count “语句把除数送入BX。

变量与堆栈联合使用,可以方便的改变和保存所需要的数据,使程序简单易懂。

6.2程序错误及改正在程序编译的过程中,遇到了一些令我措手不及的错误.由于初次遇到此类问题,我花费了大量的时间阅读代码,浏览程序,并查找课本和资料,找出指令的差别尤其是中断指令部分的差别.6.2.1 结束命令错误最初的编译,遇到该问题,仔细检查源代码,才发现l4段的退出部分出现问题.我将显示命令”mov ah, 09h int 21h ”误当作结束命令.改为”mov ah, 4ch int 21h “后,顺利结束了该程序,也解决了运行时出现的该问题。

6.2.2 除数溢出错误除数溢出问题是本次课程设计中我遇到的最困难的问题.开始时我把除数定义在2——“被除数/2”方案一:“被除数/2”用右移一位AX实现当AX中为1时,右移一位则AX为0,除数为0 , 出现逻辑错误;当AX为奇数时,右移一位则结果不精确,运行结果同样出现错误.方案二:“被除数/2”用除2的除法实现由于程序由两层循环嵌套组成,又调用了一个输出完全数的子程序,寄存器在各段中使用频繁,数据的保存和恢复频繁,容易破坏程序的条理性.而增加一次除法大大增加了寄存器的负荷,因此该方案也不是一种好的方案.于是,我把除数定义在2——被除数的范围内,解决了除数溢出的问题和寄存器的限制,但同时也给程序的计算增加了“被除数/2”的复杂度。

6.3课程设计的不足我设计和编写的程序完成了题目的要求,可以查找出任意正数范围内的完全数,但它存在两个不足:第一: 现在的程序,如果要修改完全数的查找范围,就必须在源程序中改动,重新定义n的值.但如果在程序之初给出提示,让用户输入所要查找的范围,并把该数赋值给n,从而通过n重新定义被除数就更完善了.第二: 考虑到寄存器数量上的限制和程序的可读性和条理性的要求,我扩大了除数的范围,使除数不再溢出.但这在一定程度上延迟了程序的执行速度.如果能找出协调这二者的方法,程序就更完善了.6.4课程设计的收获在本次的课程设计过程中,我最大的收获就是学到了不少新的知识,同时可以把自己学到的汇编语言的知识和以前学的程序设计的知识应用到实践中, 熟悉了开发环境,提高了自己的动手能力, 并顺利地完成了此次的任务.课程设计让我从中得到莫大的信心,鼓励,快乐和成就感.编程过程中,我遇到了一些困难.这时,我通过上网查询和去图书馆查找资料解决问题,有效地利用网络资源和学校图书资源,同时也了解了更多的知识获取的途径,扩大了自己的知识面.遇到问题时,多数情况下我是自己独立解决的,这锻炼我独立思考问题和独立解决问题的能力;如果自己通过查找资料无法解决,我就向老师和同学寻求帮助,不但学到了新的,更完善解决问题的方法,还学会了与人沟通,与人交流.我认识到有时候,其他人的一点提示,就会令自己茅塞顿开,得到灵感.因此,在作课程设计时,不要吝惜自己的思路和想法,尽可能多的与大家的交流.许多时候,我们都能从中得到进步,得到提示,甚至得到更好的方案.同时,我也发现了自己的一些问题.例如,编写程序不够规范,总是在出现问题汇编语言课程设计时,才意识到格式和编程习惯的重要性,然后手忙脚乱的去修改,给自己的自信和成就感带来很大的挑战.另外,为了图方便,我把在实验室和寝室修改过的程序直接运行,结果却不能导入MASM环境,不能出现编译,连接和运行的结果,经过同学的提示,我才知道在进行程序的编译前,要将程序在EDIT下打开.由此,我意识到,许多工作都像这样,要一步一步的来,不能耍小聪明,图省事.本次课程设计,对我帮助很大.它提高了我的理论知识和和实践动手能力;提高了我独立思考问题和解决问题的能力;同时,增强了我与人探讨问题,交流思路的意识;此外,它还让我发现了自己在编程习惯上的许多不足,对以后的编写程序和设计解题思路有很大的启发.在以后的学习和实践中,我会不断督促自己,不断提高,不断进步.10。

相关文档
最新文档