汇编语言课程设计-显示数字对称等腰三角形

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

课程设计说明书
NO.2
当用户通过键盘输入 3 时,在三角形下方用拼音显示自己的学号和姓名。当用户通过键盘输 入 4 时,退回到主界面。除此以外,输入其他键,提示错误。
开始
Main 函数
LOP1
Dh=1 CH=1,CH++ 显示空格
Cl 自减
LOP2
Cl=0?
是 否
Call space
cl=ch,cl!=0?
MOV AH,01h INT 21H ; mov ah,0h ; int 16h
CMP AL,31h
NO.13
课程设计说明书
JE SHUCHU1 CMP AL,32h JE SHUCHU2 CMP AL,33h JE SHUCHU3 CMP AL,34h JE over call clrscr mov ah,02h mov bh,0 mov dh,10 ;设置提示行号 mov dl,0 ;设置提示列号 int 10h MOV DX,OFFSET NUM1 mov ah,9 int 21h jmp zhu
该子程序能够实现从键盘读取字符‘2’后将输出数字等腰三角形外围数字用给定颜色显示 出来。
课程设计说明书
开始 从键盘读取字符
NO.4
是否为
N
‘2’
Y
将输出的数字对称三 输出错误 角形外围数字着色
结束 图 3 三角形外围数字着色程序流程框图
2.3.3 姓名学号显示功能
该子程序能够实现从键盘读取字符‘3Hale Waihona Puke Baidu后在输出数字等腰三角形下方显示给定的姓名学号。
课程设计说明书
6. 附录
源代码:
DATA NUM num0
num1 DATA
SEGMENT DB 0AH,0DH,'F1459106 lizhihong',0ah,0dh,'$' DB 0AH, 0DH, '1shuchusanjiaoxing', 0AH, 0DH DB 0AH, 0DH, '2color' DB 0AH, 0DH, '3name and studentID' DB 0AH, 0DH, '4quit' db 'Invalid input !','$' ENDS
SHUCHU1: mov ah,01h int 21h cmp al,0dh jne zhu CALL CLRSCR
CALL CRLF CALL CRLF mov dh,14 CALL DY1 JMP ZHU
课程设计说明书
NO.8
图 7 程序主界面图
(2)当用户输出字符‘1’时,程序执行功能 1,如图 8 所示。
图 8 功能 1 运行结果
课程设计说明书
(3)当用户输入字符‘2’,程序执行功能 2,结果如下图所示。
NO.9
图 9 功能 2 运行结果
(4)当用户输入字符‘3’,程序执行功能 3,结果如下图所示。
MASM 开发环境:Masm 是汇编编译器,是微软公司开发的汇编开发环境,拥有可 视化的 开发界面,使开发人员不必再使用 DOS 环境进行汇编的开发的优点,支持伪指令和宏汇编, 最后编译生成 obj 文件,通过 link 工具连接成可执行文件 exe。 使用步骤为:a 使用编辑软件 TE.EXE 进行源程序的编写。
图 10 功能 3 运行结果
(5)当用户输入字符‘4’,程序退出。
课程设计说明书
NO.10
(6)当用户输入除上述字符以外其他键,程序提示错误,结果如下图所示。
图 11 提示错误功能运行结果
课程设计说明书
NO.11
4.总结
在短暂几天的时间里,汇编语言课程设计结束了,我的收获很大。通过课程设计的编程和对 编程过程中遇到的问题的思考,有效的提高了我对汇编的认识和理解,切实的提高了我的编 程能力,补全了我的不足。通过这次课程设计,我巩固了学过的知识,进一步掌握了各个指 令的功能,特别是转向指令,掌握了子程序的定义及调用,以及正确地运用 DEBUG 指令, 进一步了解到了汇编语言的一些基本的指令,以及各个寄存器的功能及使用的方法。在整个 程序的编写中,调试占了很大部分的时间。要想写好汇编语言的程序,必须认真对待代码的 每一个细节,这对程序的调试是非常重要的。通过这次实际动手能力的培养,我进一步熟悉 了汇编语言的结构和使用方法,基本达到了能独立阅读、编制和调试一定规模的汇编语言程 序的水平。
另外,在每一个子功能的编写过程中,需要十分的注意到各个变量名的统一化,以便 于将其嵌入到主菜单中去,在编写标识符的名字的时候,尽量要做到看名字知其含义,使程 序的可读性进一步增高。
在编写代码转换程序的过程中,更是体会到了科学的严谨性,每一个小小的错误都不 容忽视,再细小的地方都需要注意,否则将会导致程序的错误。不管在做什么,都需要十分 的认真和谨慎,将每一步都做到最好。
开始
从键盘读取字符 N
是否为 ‘3’ Y 在三角形下方输出姓 名学号
输出错误
结束 图 4 姓名学号显示程序流程框图
课程设计说明书
2.3.4 退出功能
该子程序能够实现从键盘读取字符‘4’后退出运行的程序。
开始
从键盘读取字符
是否为 ‘4’
Y
退出程序
N 输出错误
NO.5
结束
图 5 退出程序流程框图
2.3.5 提示错误功能
STAK STAK
SEGMENT STACK DW 100H DUP(?)
ENDS
CODE SEGMENT ASSUME CS:CODE,SS:STAK,DS:DATA
START: MOV AX,DATA MOV DS,AX
;========MAIN()===========
ZHU:
MOV DH,1 MOV CH,01H mov ah,02h mov bh,0 mov dh,11 ;设置提示行号 mov dl,6 ;设置提示列号 int 10h CALL CRLF MOV DX,offset NUM0 mov ah,9 int 21h ;显示提示
是 Bh=ah or bh=cl ?
DL=AL,DL+’0’
LOP2F 是
LOP2R
退出程序 是
读取键盘输 入
Call writecc 打 印 DL cl=ch cl!=0?
bl=cl or ah=cl ? Call writecc 打印 DL
CH>8?
Al=cl,cl 自减 否
cl 自 减 ,bh 自
该子程序能够实现从键盘读取字符不是‘1’‘2’‘3’‘4’后输出’Invalid input !’以提示 错误。
课程设计说明书
开始 从键盘读取字符
NO.6
是否 1~4 之间?
Y
执行对应程序
N
输 出 ’Invalid input !’
结束 图 6 提示错误程序流程框图
START 标志着程序开始执行;ZHU 模块的功能是从键盘读取数据并判断函数的下一步 执行情况,是最主要的模块之一;SHUCHU1,SHUCHU2,SHUCHU3,SHUCHU4 分别表 示按下数字键‘1’,‘2’,‘3’,‘4’,后程序跳到该段开始执行,属于主要的分支模块;DY1 实现了打印数据的功能,其中,LOP2F 实现打印左边数据,LOP2F0 实现对左边边沿数据的 着色 LOP2G 实现打印右边数据,LOP2G0 实现对右边边沿数据的着色;CRLF 可以实现数 据输出前对磁盘的初始化,OUTX 用于显示输出字符,SPACE 用于对数据输出时输出数据 地址的清空,DISPLAY 实现打印要输出的字符;CLRSLR 的功能是清标准屏子程序; WRITECC 为色彩字符输出子程序。在打印左边数据时,CL、AH 用于判断打印的数据是否 在左边边沿,CL、BH 用于判断打印的数据是否属于左边数据的最后一行;在打印右边数据 时,AH 用于判断打印数据是否属于右边数据的最后一行,BL 用于判断打印的数据是否在 右边边沿;AL 用于存放将要打印的数据;CH 用于判断打印是否该结束;DL 存放打印字符 的 ASCLL 码,DH 存放打印字符的颜色值。
3.设计结果与分析
3.1 调试程序
启动 DEBUG:D>DEBUG EXAM1.EXE
A 汇编 -A 14CA:0000 U 反汇编:
课程设计说明书
NO.7
T 单步执行:
G 执行:
3.2 运行程序
(1)将汇编源代码在汇编软件 MASM.EXE 的汇编下生产 DY.obj 文件,用连接软件 LINK.EXE 对目标文件 DY.obj,进行连接生成可执行文件 DY.exe 文件。其文件生成过程如图 所示。在 DOS 的操作环境下,运行模拟显示这个汇编程序,运行的结果如图 7 所示。
b 使用汇编软件 MASM.EXE 对源程序汇编。 c 使用连接软件 LINK.EXE 对目标文件进行连接。 d使用调试软件DEBUG.EXE对可执行程序进行调试。
2.2总体设计功能
本程序分为 5 个部分,运行程序,首先会显示主界面,用户可依据提示选择不同的编号,实 现不同的功能: 当用户通过键盘输入 1 时,程序执行显示数字对称三角形功能,在运行界面 显示输出的对称三角形。当用户通过键盘输入 2 时,程序执行将三角形边框用彩色显示功能。
在这次程序设计的过程中,在设计的过程中不断地修改,改进,增强了自己分析问题 解决问题的能力;在不断地调试过程中,不断的发现问题,解决问题,通过查资料,翻阅相 关的书籍,以及向同学们请教,来逐一的解决各个问题。同时也更深的了解到了寄存器,存 储器等的工作原理以及需要注意的一些问题。
此次课程设计收获颇多,不仅仅是体会到了分析问题,想出解决方案的重要性,更是 在编写代码转换这一程序的过程中,了解到每一个系统都是由许多的子功能组成的,我们在 编写的过程中,可以先把每一个子功能分开编写,这样更容易发现错误,尽快的想出解决的 方法,在将每一个子功能编写完毕后,逐一的将它们嵌入到主菜单中去,实现一个完整的系 统。

增,display
图 1 主程序流程框图
课程设计说明书
2.3 详细设计功能 2.3.1 输出数字对称三角形功能
该子程序能够实现从键盘读取字符‘1’后输出数字等腰三角形。
开始
从键盘读取字符
是否为 1
N
Y 输出对应数字三角形 输出错误
结束
NO.3
图 2 输出数字对称三角形程序流程框图
2.3.2 数字对称三角形边框着色功能
当设计一步步接近成功,每一个子功能调试正确,都会让自己感到很高兴,从中体会 到了编程的乐趣,让自己更有信心,增强了对汇编语言程序设计的兴趣。
课程设计说明书
NO.12
5.参考文献
[1] 杨文显,宓双,胡建人.新编汇编语言程序设计[M],北京:清华大学出版社,2010:20-58 [2] 朱玉龙,任文览等.汇编语言程序设计[M],北京:清华大学出版社,2003:67-89 [3] 吴向军等.汇编语言程序设计[M],北京:高等教育出版社,2002:98-119 [4] 沈美明等.IBM-PC 汇编语言及程序设计实验教程[M],北京:清华大学出版社 ,2001: 45-67 [5] 钱晓捷等.汇编语言程序设计[M], 北京:电子工业出版社,2000:1-24 [6] 李珍香等.汇编语言程序设计案例精编[M],北京:中国水利水电出版社,2004:5-16 [7] 白小明.汇编语言程序设计[M],北京:中国铁道出版社,2009:56-76 [8] 王成耀,姚琳.汇编语言程序设计[M],北京:机械工业出版社,2003:34-46 [9] 范立南, 谢子殿. 单片机原理及应用教程[M]. 北京:北京大学出版社, 2006.1:123-130 [10] 沈美明等.IBM-PC 汇编语言及程序设计实验教程[M],北京:清华大学出版社 ,2001.2: 101-113
课程设计说明书
NO.1
显示数字对称等腰三角形
1 课程设计的目的
本次课程设计为了巩固和加深课堂所学知识,将课本上的理论知识和实际应用有机的结 合起来,培养我的分析和解决实际问题的能力。通过对汇编语言程序代码的阅读、修改、设 计,理解和掌握复杂的汇编语言应用程序的编程,提高实践编程能力。这个课程设计,能够 显示一个由从一到八的数字组成的左右对称的三角形,给等腰三角形加彩色边框,并且能在 三角形的下方显示自己的学号姓名。
2 设计方案论证 2.1 开发环境
软件环境:操作系统:Windows 8 64 位(DirectX 11)、 BIOS 系统 DOS 系统
硬件环境:处理器:英特尔 第三代酷睿 i3-3110M @ 2.40GHz 双核 内存:4GB(三星 DDR3 1333MHz) 主硬盘:希捷 ST500LM012 HN-M500MBB (500GB/5400 转/分) 显示器:三星 SEC3649(14 英寸)
相关文档
最新文档