为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > 汇编语言判断能否构成三角形

汇编语言判断能否构成三角形

2018-03-21 22页 doc 96KB 67阅读

用户头像

is_977556

暂无简介

举报
汇编语言判断能否构成三角形汇编语言判断能否构成三角形 课程设计任务书 学生姓名: 专业班级: 指导教师: 工作单位: 自动化学院 题 目: 判断是否能构成三角形汇编语言程序设计 初始条件: 采用16位微处理器 8086 CPU以及86系列微型计算机的指令系统; 软件设计平台为多功能微型计算机实验软件MFS中的微机原理实验集成环境MF2KP。 要求完成的主要任务: 1、设计汇编语言程序,实现判断是否能构成三角形的功能,具体功能要求如下: 输入a,b,c 三边后,判断是否能构成三角形,如能构成三角形,输出三角形的周长,否则输出“ERRO...
汇编语言判断能否构成三角形
汇编语言判断能否构成三角形 课程任务书 学生姓名: 专业班级: 指导教师: 工作单位: 自动化学院 题 目: 判断是否能构成三角形汇编语言程序设计 初始条件: 采用16位微处理器 8086 CPU以及86系列微型计算机的指令系统; 软件设计平台为多功能微型计算机实验软件MFS中的微机原理实验集成环境MF2KP。 要求完成的主要任务: 1、设计汇编语言程序,实现判断是否能构成三角形的功能,具体功能要求如下: 输入a,b,c 三边后,判断是否能构成三角形,如能构成三角形,输出三角形的周长,否则输出“ERROR”。要求:提示输入三角形三边长度a b c;键盘输入,中间空格隔开; Enter 键结束输入,并换行显示判断结果。 2、根据功能要求绘制程序流程图、编写完整的汇编语言程序并上机调试: 3、撰写课程设计说明书。课程设计说明书的撰写格式如下: (1)设计说明书包括封面、任务书(指导老师提供)、正文、参考文献(3,5篇)、附录(程序清单,要求有注释)、成绩评定(指导老师提供)。 (2)说明书正文包含总体方案论证(算法说明);程序流程图设计及其说明;软件设计关键问题或程序段落的说明;程序调试说明、结果及分析;课程设计收获及心得体会。 (3)同一选题若为合作完成,设计说明书中需注明本人承担的设计部分。 时间安排: 本次课程设计时间:2012年1月4日-13日 具体时间安排见微机原理课设2009级_大纲 指导教师签名: 年 月 日 系主任(或责任教师)签名: 年 月 日 武汉理工大学《微机原理与接口技术》课程设计说明书 目 录 摘 要 ............................................ 1 1 设计意义及要求 ................................ 2 1.1 设计意义 .................................. 2 1.2 设计要求 .................................. 2 2 设计原理 ...................................... 3 2.1设计思路 ................................... 3 2.2 DOS及其功能调用 ........................... 3 2.3 ASCII码 ................................... 5 3 程序设计 ....................................... 6 3.1 程序流程图 ................................ 6 3.2程序说明 ................................... 7 4 程序调试与运行 ................................ 9 4.1调试过程 ................................... 9 4.2调试中遇到的问题 .......................... 10 心 得 体 会 ..................................... 11 参 考 文 献 ..................................... 12 附录1 .......................................... 13 本科生课程设计成绩评定表 ........................ 16 成 绩 评 分 表 .................................. 17 2 武汉理工大学《微机原理与接口技术》课程设计说明书 摘 要 在科技飞速发展的今天。计算机在人们的日常生活,工业生产,科技研发,航空航天领域都有不可替代的作用。而这一切的基础都是计算机。可见计算机的重要性,而计算机的发展速度更是惊人,最初的计算机,体积庞大,结构复杂,只有专业人员才能操作,但是,经过了仅仅几十年的发展,计算机已经被缩小到很微型了,操作也更加简单,结构更加清晰明了,而其中为代表的就是8086系列的微处理器的出现,彻底改变了之前计算机体积庞大的缺憾。但是无论如何发展计算机都是遵循着冯?诺依曼的结构发展的。 汇编语言是微机原理及应用的基础,微机主机及接口所要实现的功能都要通过汇编语言来实现。尽管汇编语言程序设计编程效率偏低,但运行效率高、速度快。因此掌握汇编语言是学好微机原理及接口技术的第一步。 本次课程设计正是通过汇编语言来完成对三个数能否构成三角形的判断,来让我们掌握汇编语言,微机原理和接口的关系。 关键词:汇编语言,计算机发展,微机原理及接口技术 1 武汉理工大学《微机原理与接口技术》课程设计说明书 1 设计意义及要求 1.1 设计意义 汇编语言是微机原理及应用的基础,微机主机及接口所要实现的功能都要通过汇编语言来实现。尽管汇编语言程序设计编程效率偏低,但运行效率高、速度快。因此掌握汇编语言是学好微机原理及接口技术的第一步。 本次课程设计正是通过汇编语言来完成对三个数能否构成三角形的判断,来让我们掌握汇编语言,微机原理和接口的关系。 1.2 设计要求 初始条件: 采用16位微处理器 8086 CPU以及86系列微型计算机的指令系统; 软件设计平台为多功能微型计算机实验软件MFS中的微机原理实验集成环境MF2KP。 要求完成的主要任务: 1、设计汇编语言程序,实现判断是否能构成三角形的功能,具体功能要求如下: 输入a,b,c 三边后,判断是否能构成三角形,如能构成三角形,输出三角形的周长,否则输出“ERROR”。要求:提示输入三角形三边长度a b c;键盘输入,中间空格隔开; Enter 键结束输入,并换行显示判断结果。 2、根据功能要求绘制程序流程图、编写完整的汇编语言程序并上机调试: 2 武汉理工大学《微机原理与接口技术》课程设计说明书 2 设计原理 2.1设计思路 本次设计是利用汇编语言来实现判断三个数是否构成三角形的功能。倘若能构成三角形,必定两边之和大于第三边。利用汇编语言中的顺序结构、分支结构、循环结构、子程序以及各种指令语言来完成。首先绘制流程图,根据流程图来编写程序,检查无误后上机调试。 2.2 DOS及其功能调用 DOS不仅为用户提供了许多使用命令,而且还有用户可以直接调用的上百个常用子程序。对这些子程序的调用,称为系统功能调用。这些子程序的功能只要是进行磁盘读/写、控制管理、内存管理、基本输入/输出管理等。在使用时,用户不需要了解各种I/O接口硬件的详细情况就能直接完成对I/O接口的控制和管理。为了使用方便,将所有子程序从1号开始顺序编号,这些编号成为DOS功能调用号。其调用过程为: , DOS功能调用号送AH寄存器 , 如果需要,按要求给定输入参数(有的不需要输入参数) , 写入中断指令“INT 21H” 调用结束,按功能使用其输出参数。 表1 字符I/O系统功能调用 功能号 功能 入口参数 出口参数 01H 带回显的键盘输入 AL=输入字符 06H 直接控制台I/O DL=FF(输入) AL=输入字符 DL=字符(输出) 0AH 字符串缓冲输入 DS:DX=缓冲区首址 02H 字符显示 DL=输出字符 04H 串行口输出字符 DL=输出字符 05H 字符打印 DL=输出字符 09H 字符串显示 DS:DX=缓冲区首址 0DH 初始化键盘 3 武汉理工大学《微机原理与接口技术》课程设计说明书 1(功能01H 功能描述:从输入设备(如:键盘)读入一个字符。该中断在处理过程中将一直处于等待状态直到有字符可读为止。该输入还可被重定向,如果这样做,则无法判断文件是否已到文件尾。 入口参数:AH,01H,过滤掉控制字符,并回显。 出口参数:AL,输入字符的ASCII码。 例如:读键盘输入一个字符并且回显的程序。 MOV AH,1 INT 21H 2(功能02H 功能描述:向标准输出设备(如:屏幕)输出一个字符。该输出还可被重定向,如果这样做,则将无法判断磁盘是否满。 入口参数:AH,02H,DL,待输出字符的ASCII码。 出口参数:无。 其基本格式如下: MOV AH,2 MOV DL,要显示的字符的ASCII INT 21H 3. 功能09H 功能描述:输出一个字符串到标准输出设备上。如果输出操作被重定向,那么,将无法判断磁盘已满。 入口参数:AH,09H,DS:DX,待输出字符的地址,待显示的字符串以’$’作为其结束标志,否则会引起屏幕混乱。显示时在字符串结束前加上回车及换行的ASCII码0DH和0AH,可使光标自动换行。 出口参数:无。 其基本格式如下: MOV AH,9 LEA DX,<字符串> INT 21H 4 武汉理工大学《微机原理与接口技术》课程设计说明书 2.3 ASCII码 由于计算机硬件只能识别二进制数,字母和字符也必须使用二进制编码来表示。目前用来表示字母和字符的二进制编码方式有很多种,最常用的是ASCII码。多用于输入输出设备(如电传打字机),是7位二进制编码。它总共可表示128个符号,包括26个英文大写字母, 26个英文小写字母,0,9共十个数字,32个通用控制字符和34个专用字符。 在计算机中用一个字节存放字符编码,故在ASCII的最高位补0。因此ASCII可表示8位二进制或两位16进制数。本设计所需要的空格的ASCII码为20H,回车及换行的ASCII码0DH和0AH,数字0~9为30H~39H。 5 武汉理工大学《微机原理与接口技术》课程设计说明书 3 程序设计 3.1 程序流程图 开 始 定义数据段和代 码段及初始化 AX清零 分别输入3个数a、将BX值赋予AX b、c,回车 AX与CX相加存于 将a、b、c ASCIIAX 值转化为数值型 AX与DX相加存于 AX Y a+b与c比 较 JBE 将数字化为十进制 N 显示周长数值 Y b+c与a比 较 JBE 结束 N Y a+c与b比 较 JBE N 显示error 显示“能构成三角 形以及周长” 图1 主程序设计流程图 由于需要通过键盘输入字符,需要调用DOS系统的INT 21H一系列子功能 从键盘输入字符然后显示出来。开始要定义数据段和代码段,接着初始化,通过 6 武汉理工大学《微机原理与接口技术》课程设计说明书 调用09H号子功能在屏幕上显示“please input three nums a b c:”,回车通过调用子程序对输入的数字进行比较判断能否构成三角形。若能则通过02H号子功能在屏幕上显示“Yes, they can construct a triangle.”并对三个数进行相加所得结果也要通过02H号子功能在屏幕上显示“The girth of the triangle is:”。若不能构成三角形则显示“error,please re-enter”可以继续输入三个数进行判断。 3.2程序说明 1、代码段定义 代码段需要定义预显示的字符,并以‘$’字符结束。还需要定义预输入字符串的缓冲区,缓冲区的第一个字节存放能保存的最大字符数,第二个字节存放实际输入的字节数,遇到回车停止输入。 本设计段码定义如下: STACK SEGMENT STACK DB 400 DUP(?) STACK ENDS DATA SEGMENT STR0 DB 13,10,'please input three nums a b c:','$' STR1 DB 13,10,'Yes, they can construct a triangle.','$' STR2 DB 13,10,'The girth of the triangle is: ','$' STR3 DB 13,10,'error,please re-enter ','$' DATA ENDS CODE SEGMENT ASSUME DS:DATA,CS:CODE,SS:STACK 2、数值转换 利用0~9数字的ASCII值比本身大30H的关系,将对应的字符转换为十进制。本设计数值转换程序代码如下: MOV CH,10 DIV CH 3、判断能否构成三角形 本次设计针对所给题目进行了改善,程序如下所示,倘若所输入的三个数不能够成三角形,则可以回车继续输入三个数进行进一步判断。 MOV AX,BX 7 武汉理工大学《微机原理与接口技术》课程设计说明书 ADD AX,CX CMP AX,DX JBE LA1 MOV AX,CX ADD AX,DX CMP AX,BX JBE LA1 MOV AX,DX ADD AX,BX CMP AX,CX JBE LA1 LA1: MOV DX,OFFSET STR3 MOV AH,9 INT 21H JMP A3 4、计算三角形周长 首先将AX清零,将三个数字相加的结果存放在AX中,用数值转换代码将ASCII 码转化为十进制,然后通过02H号子功能在屏幕上显示计算结果。 XOR AX,AX MOV AX,BX ADC AX,CX ADC AX,DX MOV CH,10 DIV CH MOV BL,AH ADD AL,30H MOV DL,AL MOV AH,2 INT 21H ADD BL,30H MOV DL,BL MOV AH,2 INT 21H 8 武汉理工大学《微机原理与接口技术》课程设计说明书 4 程序调试与运行 4.1调试过程 通过以上步骤在MF2KP软件中进行调试,首先输入源程序,点击汇编后,检查是否存在错误,修改好所有出现的错误后,运行。DOS系统的INT 21H下的09H字功能以“$”为结束符,自动结束字符串的显示,所以运行后屏幕首先显示“please input three nums a b c:”随后输入三个数字 图2 输入任意三个数字 回车后计算机判断这三个数能否构成三角形并计算所构成三角形的周长,显然如图2所示的三个数能构成三角形,且周长应该是12。 图3 显示是否能构成三角形以及周长 如果输入的三个数不能构成三角形,显示如下。出现“error,please re-enter”, 9 武汉理工大学《微机原理与接口技术》课程设计说明书 此时回车可继续输入三个数进行运算。 图4 不能构成三角形 图5 继续输入三个数字进行判断 4.2调试中遇到的问题 一开始的时候程序汇编不能成功。经过仔细检查后发现,有些程序代码有逻辑上的错误,而且对于输入法和符号都有很高的要求,经过不断排查纠正,最终程序能够顺利运行。此次程序设计主要包括调用DOS系统的INT 21H功能从键盘输入字符然后显示字符,通过调用相应的字程序判断所输入的三个数能否构成三角形。通过编写相应的主程序和FUNC1 PROC、计算周长两个子程序,经反复调试、运行及修改得出满足要求的程序,从而完成此次课程设计。 10 武汉理工大学《微机原理与接口技术》课程设计说明书 心 得 体 会 这是本学期的第二次课程设计。我个人比较喜欢微机原理这门课程,因为它可以让冷冰冰的机器听话地运行,执行各种指令。刚刚开课之初也是抱着很高的积极性去学的。但是最初接触微机原理这门课时感觉很深奥,很晦涩难懂。因为是和机器打交道,因此要说些机器听得懂的语言,就是所谓的汇编语言,但是汇编语言灵活多变,有各种省略和等效的形式,有较多的指令和要求,而每一条指令又有不同的使用情况,但是经过了一个学期的学习和磨练,我对与微机原理这门课程也越来越熟悉了,本次课设也是一次不可多得的检验自己所学知识的好机会。因此做的比较认真。 通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。 在这次课程设计中,我真正体会到了合作的重要性,遇到很多的问题,当我看书查看资料不能解决时,去找同学讨论收获很大,可以使很多问题迎刃而解,知道问题最终解决。不可否认,本程序存在很多不足和缺点,但通过这次课程设计找出了自己学习上的不足,对以后的学习和生活有很多指导意义,我相信在以后的学习生活工作中我会努力克服这些不足,取得不断的进步。 11 武汉理工大学《微机原理与接口技术》课程设计说明书 参 考 文 献 [1]《微机原理与接口技术》(基于16位机)电子工业出版社 周佩玲 等编著2005年2月 [2]《微机原理与接口技术》 清华大学出版社,张小鸣 主编2001年9月 [3]《微机原理与汇编语言》电子工业出版社,王钰等编著2001年8月 [4]《汇编语言程序设计》中国水利水电出版社,相伟主编2005年8月 [5]《微型计算机原理》 西安电子科技大学出版社,姚燕南2005年9月 12 武汉理工大学《微机原理与接口技术》课程设计说明书 附录1: STACK SEGMENT STACK DB 400 DUP(?) STACK ENDS DATA SEGMENT STR0 DB 13,10,'please input three nums a b c:','$' STR1 DB 13,10,'Yes, they can construct a triangle.','$' STR2 DB 13,10,'The girth of the triangle is: ','$' STR3 DB 13,10,'error,please re-enter ','$' DATA ENDS CODE SEGMENT ASSUME DS:DATA,CS:CODE,SS:STACK ;定义数据段及代码段 START:MOV AX,DATA ;初始化 MOV DS,AX A3: LEA DX,STR0 MOV AH,9 INT 21H ;屏幕输出STR MOV AH,1 INT 21H ;输入数字1,得到数字1的ASCII码,保存于AL中 CBW ;将AL中的数的符号位扩展到AH中,得到AX中的值 MOV BX,AX MOV AL,20H ;输出空格 MOV AH,2 INT 21H MOV AH,1 INT 21H ;输入数字2,得到数字2的ASCII码,保存于AL中 CBW MOV CX,AX MOV AL,20H MOV AH,2 INT 21H MOV AH,1 INT 21H ;输入数字3,得到数字3的ASCII码,保存于AL中 CBW MOV DX,AX MOV AH,1 INT 21H 13 武汉理工大学《微机原理与接口技术》课程设计说明书 CMP AL,0DH ;输入回车 JE A2 ;遇到回车调转到A2 JMP A3 A2: SUB BX,30H SUB CX,30H SUB DX,30H ;将ASCII值转化为数值型 CALL FUNC1 ;调用子程序 MOV AH,4CH INT 21H ;程序结束 FUNC1 PROC ;定义子程序 MOV AX,BX ;将BX中的值赋给AX ADD AX,CX ;AX与CX相加存在AX中 CMP AX,DX ;比较BX+CX与DX大小 JBE LA1 ;BX+CX小于等于DX跳转 MOV AX,CX ;将CX的值赋给AX ADD AX,DX ;AX与DX相加存在AX ;比较CX+DX与BX大小 CMP AX,BX JBE LA1 ;CX+DX小于等于BX跳转 MOV AX,DX ;将DX值赋给AX ADD AX,BX ;AX与BX相加存于AX CMP AX,CX ;比较DX+BX与CX大小 JBE LA1 ;DX+BX小于等于CX跳转 PUSH DX MOV DX,OFFSET STR1 MOV AH,9 INT 21H ;屏幕输出STR1 LEA DX, STR2 MOV AH,9 INT 21h ;输出STR2 POP DX XOR AX,AX ;将AX清零 MOV AX,BX ADC AX,CX ADC AX,DX ;将三个数相加存入AX中 MOV CH,10 DIV CH ;将数字转化为十进制 14 武汉理工大学《微机原理与接口技术》课程设计说明书 MOV BL,AH ADD AL,30H MOV DL,AL MOV AH,2 INT 21H ADD BL,30H MOV DL,BL MOV AH,2 INT 21H JMP P7 LA1: MOV DX,OFFSET STR3 MOV AH,9 INT 21H ;屏幕输出STR3 JMP A3 P7: RET ;返回子程序 FUNC1 ENDP CODE ENDS END START ;程序结束 15 武汉理工大学《微机原理与接口技术》课程设计说明书 本科生课程设计成绩评定表 姓 名 性 别 专业、班级 课程设计题目: 课程设计答辩或质疑记录: 成绩评定依据: 最终评定成绩(以优、良、中、及格、不及格评定) 指导教师签字: 年 月 日 16 武汉理工大学《微机原理与接口技术》课程设计说明书 成 绩 评 分 表 项目 评分标准 得分 课程设计说方案论证 能正确分析设计内容,算法选择合10?X?8 明书撰写 10分 理,并有详细的说明、论证。 60分 能分析设计内容,算法选择满足设7?X?4 计要求,有简单说明 设计方案不太满足设计内容及要3?X?0 求,无说明 流程图设流程设计正确,并有详细的说明,10?X?8 计 10分 流程图绘制规范 流程设计符合设计内容及要求,并7?X?4 有一定说明,流程图绘制正确 流程设计不太满足设计内容及要求3?X?0 且无说明,流程图绘制不太正确 软件设计 程序设计关键问题或段落有详细说10?X?8 说明 10分 明,程序代码正确 程序设计关键问题或段落有说明,7?X?4 程序代码基本正确 程序设计关键问题或段落基本无说3?X?0 明,程序代码不完整或不太满足设 计要求 结果分析 能正确记录调试结果,并能分析结10?X?8 10分 果,给出合理的建议 能记录调试结果,并加以分析 7?X?4 记录调试结果,但无分析 3?X?0 心得体会 基本上真实、客观地反映了本人课10?X?6 10分 程设计的收获、心得 无感而发,空洞,套话。 5?X?0 规范 完全按照报告格式要求,内容充实、10?X?8 10分 详细,完全符合规范 基本按报告格式要求,内容完整,7?X?4 基本符合规范 未按报告格式要求,不太符合规范 3?X?0 程序调试 程序上机调试运行结果完全正10?X?8 10分 确 17 武汉理工大学《微机原理与接口技术》课程设计说明书 程序上机调试运行结果基本满7?X?4 足设计要求 程序上机调试运行结果不太满3?X?0 足设计要求 设计答辩 能详细完整地表述设计内容,10?X?8 10分 并能正确回答问题 能完整地表述设计内容,并能7?X?4 回答相关问题 基本表述设计内容,但不能回3?X?0 答相关问题 难度分值 一~十四题:7分 十五~十七题:10分 10分 纪律及考勤 按照课程设计进度安排完成课程设计任务,按时参加中期检查 10分 及答疑、程序演示及答辩环节。缺席一次扣5分。 总评分数 优秀(100,良好(89,中等(79,70) 及格(69,不及格90) 80) 60) (60以 下) 18
/
本文档为【汇编语言判断能否构成三角形】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索