1、目录摘 要 .11 程序设计要求及目的 .21.1 程序设计要求 .21.2 程序设计目的 .22 设计思路与准备 .32.1 程序设计思路 .32.2 DOS 功能调用 .42.3 ASC码转换表 .73 程序设计与代码说明 .83.1 流程图设计 .83.2 程序输入部分 .93.3 程序判断部分 .103.4 程序输出部分 .123.4.1 构成三角形的边长输出 .123.4.2 错误输出 .133.5 完整程序代码 .134 程序调试与运行 .174.1 调试过程 .175 程序创新与改进 .205.1 改进说明 .205.2 程序代码 .215.3 程序运行与调试 .226 心得及体
2、会 .227 参考文献 .24附件一:题目要求源程序附件二:加入判断等腰或等边三角形的程序武汉理工大学微机原理与接口技术课程设计说明书0摘 要汇编语言是面向机器的程序设计语言。在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址,如此就增强了程序的可读性和编写难度,象这样符号化的程序设计语言就是汇编语言,因此亦称为符号语言。使用汇编语言编写的程序,机器不能直接识别,还要由汇编程序或者叫汇编语言编译器转换成机器指令。汇编程序将符号化的操作代码组装成处理器可以识别的机器指令,这个组装的过程称为组合或者汇编。因此,有时候人们也把汇编语言称为组合语言。 汇编语言是微机原理
3、及应用的基础,微机主机及接口所要实现的功能都要通过汇编语言来实现。尽管汇编语言程序设计编程效率偏低,但运行效率高、速度快。因此掌握汇编语言是学好微机原理及接口技术的第一步。本次课设通过代码编程,设计出输入三边并判断它们是否能够成三角形,若不能,则显示错误字样。否则直接显示输出该三角形的周长。充分应用汇编技术,微机原理和接口技术的知识。关键词:汇编语言,控制,微机原理及接口技术,三角形武汉理工大学微机原理与接口技术课程设计说明书11 程序设计要求及目的1.1 程序设计要求1.1.1 选题:第十四题 判断是否能构成三角形汇编语言程序设计 输入a,b,c 三边后,判断是否能构成三角形,如能构成三角形
4、,输出三角形的周长,否则输出“ERROR”。要求:提示输入三角形三边长度a b c;键盘输入,中间空格隔开; Enter 键结束输入,并换行显示判断结果。 1.1.2 要求:(1)程序需上机调试通过才算完成该设计内容; (2)同一选题可合作完成,但设计报告书需注明本人承担的设计部分; (3)报告书中的源程序要求加注释。 1.2 程序设计目的(1)进一步建立微机系统的概念,加深对系统的理解和认识,培养学生应用微型计算机解决实际问题的能力; (2)进一步学习和掌握汇编语言程序的编写和应用的方法,通过较大规模程序的编写,提高编写汇编语言程序的水平和学习程序调试方法。 (3)进一步熟悉微机最小系统的构
5、成及常用接口芯片的使用,提高系统设计能力。 武汉理工大学微机原理与接口技术课程设计说明书22 设计思路与准备2.1 程序设计思路2.1.1 构成三角形的条件由三角形定理克制,三边构成三角形的充要条件:(1)任意两边之和大于第三边, (2)任意两边之差小于第三边,令给出三遍长度分别为 a、b、c ,转换为字母表示如下:(1)a+bc;a+cb;b+ca;(2)|a-b|” ,等待 DOS 命令。 (8)直接输入、输出单字符(6 号功能调用) 格式: MOV DL, 输入/输出标志 MOV AH, 06HINT 21H功能:执行键盘输入操作或屏幕显示输出操作,但不检查 CtrlBreak 组合键是
6、否按下。执行这两种操作的选择由 DL 寄存器中的内容决定。 当(DL)0FFH 时,执行键盘输入操作。若标志 ZF0,AL 中放入字符的ASCII 码;若标志 ZF1,表示无键按下。这种调用用来检测键盘是否有键按下,但不等待键盘输入。 当(DL)0FFH 时,表示将 DL 中内容送屏幕显示输出。 武汉理工大学微机原理与接口技术课程设计说明书6DOS 功能调用表功能号 功能 入口参数 出口参数01H 带回显的键盘输入 AL=输入字符DL=FF(输入)06H 直接控制台 I/ODL=字符(输出)AL=输入字符0AH 字符串缓冲输入 DS: DX 缓冲区首址 02H 字符显示 DL=输出字符 04H
7、 串行口输出字符 DL=输出字符 05H 字符打印 DL=输出字符 09H 字符串显示 DS: DX 缓冲区首址 2.3 ASC码转换表编程涉及的部分ASC码转换如下表所示:八进制 十六进制 十进制 字符 解释15 0D 13 CR 回车键40 20 32 ( space) 空格60 30 48 0 数字 061 31 49 1 数字 162 32 50 2 数字 263 33 51 3 数字 364 34 52 4 数字 465 35 53 5 数字 566 36 54 6 数字 667 37 55 7 数字 770 38 56 8 数字 871 39 57 9 数字 9武汉理工大学微机原理
8、与接口技术课程设计说明书73 程序设计与代码说明3.1 流程图设计结束开始输入 a、b、c将 a、b、c 转化为 ASC码将数字转换为十进制a+bc?a+cb?b+ca?输出周长计算周长=a+b+cERROR 返回YYNNN图 2 主程序流程图武汉理工大学微机原理与接口技术课程设计说明书83.2 程序输入部分3.2.1 程序说明为保证界面的美观,在输入 a,b,c 之前希望界面显示提示输入的字符,在数据段可以定义,利用功能调用代码 MOV AH,9 显示提示输入的字符串。程序输入部分要求键盘输入 a,b,c 的值,则需要调用 DOS 功能,键盘单字符输入的代码指令为 MOV AH,1 。CBW
9、 代码是将输入在 AL 中的数扩展到 AH 中从而得到 AX 的值。输入空格的功能调用操作指令为 MOV AH,2 ,分别在三次单字符键入后使用保证没输入完成一个字符后自动空格。利用回车完成输入结束等待继续程序可以用 CMP AL,0DH 和 JNE INPUT实现,由于回车的 ASC 码为 0DH,故输入回车时两者相等程序继续,若输入字符不为回车,则执行 JNE 后的程序段,跳转至输入程序段首重新等待输入。3.2.2 程序代码 INPUT:LEA DX,BUFF1 MOV AH,9 ;显示“请输入 a、b、c 的值“ 字样 INT 21HMOV AH,1 ;输入 a 值INT 21HCBW ;将 AL 数中的符号位扩展到 AH 中得 AXMOV BX,AX ;将 a 的值存入 BX 中MOV AL,20H MOV AH,2 ;在字母 a 的值键入后输出空格INT 21HMOV AH,1 ;输入 b 的值