1、 0 目录 摘要 . 1 1.设计目的和要求 2 1.1 设计目的. 2 2.程序设计说明 2 2.1 程序设计流程图 3 2.2 程序段落说明 4 2.2.1 程序定义段 . 4 2.2.3 回文数判定程序设计 . 5 2.2.4 程序结束程序段. 7 3.程序调试及结果 7 小结及体会 8 参考文献 9 附录 10 1 摘要 日常生活中, 计算机能处理的信息是多种多样的, 如各种数据的查询与计算, 不同的文字符号,各种图像信息。利用计算机的逻辑性与它的告诉计算,我们可 以解决许多趣味性的数学问题,用汇编语言程序能实现数的查找计算及显示,能 在 MF2KI 中演示,编写一定功能的程序。 此次
2、课程设计基于我们这学期所学的微机原理与接口技术 ,要求我们运 用书上知识解决汇编语言编程问题,程序要求能将实现大小写字母转换,并且输 入查找字符时,能显示该字符在字符串中的位置,若原字符串中没有该字符,则 在屏幕上显示相应的提示语句。程序能实现人机交互功能,有一定的提示语句。 汇编语言设计时先绘制流程图,分配存储空间,编写程序,对于我们熟悉汇 编语言程序的编写,程序思路的设计有很大的帮助,应严肃认真对待。 关键词关键词:汇编语言 编程 回文数的寻找 2 求出 500 以内的回文数 1.设计目的和要求 1.1 设计目的 (1)进一步建立微机系统的概念,加深对系统的理解和认识,培养学生应 用微型计
3、算机解决实际问题的能力; (2)进一步学习和掌握汇编语言程序的编写和应用的方法,通过较大规模 程序的编写,提高编写汇编语言程序的水平和学习程序调试方法。 (3)进一步熟悉微机最小系统的构成及常用接口芯片的使用,提高系统设 计能力。 a) 设计要求 1设计汇编语言程序,实现求出500 以内的回文数的功能,具体功能要求如下: 如果一个数从左边和从右边读都是相同的数,就称它为回文数,例如383,求出 500 以内的回文数并输出显示。要求:提示数据范围为0-500;换行显示结果。 2根据功能要求绘制程序流程图、编写完整的汇编语言程序并上机调试 2.程序设计说明 汇编语言要求设计一个程序来找出0到500
4、以内的回文数,如果一个数从 左边和从右边读都是相同的数,就称它为回文数,故设计此程序思维很简单, 根据回文数的特性,1至9都为回文数,而在10到500间的回文数需另外求出, 因此本程序设计采用分支结构与循环结构相结合。 首先,设计一循环程序,在1到500间对每个数进行判断,因此要循环500 次,在执行程序前,应先定义一个变量,为简化程序,由上述已知1至9都为 回文数,故先比较此数与10的大小。从1开始,如果小于10,可以直接输出; 如果大于10,将此数与100比较,如小于100,将十位与个位相比较,相同则 为回文数,执行输出指令,不同则执行加一指令继续循环;如此数大于100, 将个位与百位相比
5、较,相同则为回文数,执行输出指令,不同则执行加一指 3 令继续循环,直到1到500的数都检查了一遍,至此,1到500内的回文数都可 求出。 2.1 程序设计流程图 图一 程序流程图 程序开始时, 先定义数据段、 堆栈段和代码段, 在判断程序程序继续进行后, 初始化,定义循环次数及给变量赋值,程序步骤主要分三步: a) 比较变量与 10 的大小,当变量小于 10 时,判定此数为回文数,将变量的个 位、十位、百位存储在内存单元 num、num+1、num+2 中,当然小于 10 时个 位与十位赋值为 0,将变量加上 0030H,转换为 ASCII 码,然后即可调用 DOS 4 功能将计数值输出在屏
6、幕上 b) 当变量大于 10 时,比较变量与 100 的大小,若变量小于 100,则除以 10, 由汇编语言的运算法则知,余数存储在 AH 中,商存储在 AL 中,要将余数商 都转换成 ASCII 码,将 AX 加上 3030H,比较余数和商的大小,若相等则判定 为回文数,将余数值存储在 num,商存储在 num+1,调用 DOS 功能将计数值 输出在屏幕上;不相等则将变量加一,回到(a)循环 c) 当变量大于 100 时,除以 10,余数存储在 AH 中,加上 0030H 后存储在 num 中, ;再将商除以 10(注意 AH 需清零) ,余数和商都加上 0030H,分别存储 在 num+1 和 num+2 中,比较 num 与 num+2 大小,相等则判定为回文数,调用 DOS 功能将计数值输出在屏幕上;不相等则回到(a)继续循环,直到变量等 于 500 为止。 2.2 程序段落说明 2.2.1 程序定义段 程序定义段要定义数据段、堆栈段、代码段。定义数据段堆栈段、数据段、 代码段并不复杂,参照课本上定义方法即可。不同的是在数据段的的定