收藏 分享(赏)

微机原理与汇编程序.doc

上传人:HR专家 文档编号:5373637 上传时间:2019-02-25 格式:DOC 页数:19 大小:219.27KB
下载 相关 举报
微机原理与汇编程序.doc_第1页
第1页 / 共19页
微机原理与汇编程序.doc_第2页
第2页 / 共19页
微机原理与汇编程序.doc_第3页
第3页 / 共19页
微机原理与汇编程序.doc_第4页
第4页 / 共19页
微机原理与汇编程序.doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

1、微 机 原 理 与 汇 编 技 术课 程 设 计 (论 文 )图形变换程序设计院 ( 系 ) 名 称 电 子 与 信 息 工 程 学 院专 业 班 级 计 算 机 科 学 与 技 术学 号 120401学 生 姓 名指 导 教 师 教 授起 止 时 间 : 2014.12.152014.12.26课程设计(论文)任务及评语院(系):电子与信息工程学院 教研室:计算机科学与技术学 号 学生姓名 专业班级课程设计(论文)题目图形变换程序设计课程设计(论文)任务按以下要求完成程序设计任务:完成一个图形变换的程序,系统具有 4 种可选择的功能,按字母Y画一个用点组成的圆;按字母S画一个用不同颜色填充的

2、三角形;按字母Z画一个用不同颜色填充的矩形;按 q键退出。指导教师评语及成绩平时成绩: 答辩成绩: 论文成绩: 总成绩: 指导教师签字: 年 月 日本科生课程设计(论文)目录目录 .3第 1 章 综述 .11.1 项目特点及目的 .11.2 题目简介 .11.3 程序设计要求 11.4 工作环境 .1第 2 章 基本知识 .22.1 编译环境简介 .22.2 MASM 的使用 22.3 编译步骤 2第 3 章 程序设计 .33.1 程序要求分析 .33.2 设计思路 .33.3 程序流程图 .3第 4 章 程序执行结果 .5第 5 章 总结 .7参考文献 .8附录 .9本科生课程设计(论文)0

3、第 1 章 综述1.1 项目特点及目的本课程设计是一次程序设计方法及技能的基本训练;通过实际程序的开发及调试,巩固课堂上学到的关于程序设计的基本知识和基本方法,进一步熟悉汇编语言的结构特点和使用;达到能独立阅读、设计编写和调试具有一定规模的汇编程序的水平,并掌握一些汇编语言常用程序的编写方法。1.2 题目简介用 8086 汇编语言编写一个能实现图形变换的程序。程序能按要求实现按键控制图形。1.3 程序设计要求(1) 遵循模块化、结构化的编程思路。(2) 程序必须正确运行,生成.exe 可执行文件。(3) 程序简明易懂,多标明注释,具有良好的程序书写风格。(4) 适当优化程序,提高程序的运行效率

4、。1.4 工作环境 使用的设备及软件为 8086 兼容机及 MASM 汇编开发软件。本科生课程设计(论文)1第 2 章 基本知识2.1 编译环境简介MASM 是微软公司开发的汇编开发环境,拥有可视化的开发界面,使开发人员不必再使用 DOS 环境进行汇编的开发,编译速度快,支持 80x86 汇编以及Win32Asm,是 Windows 下开发汇编的利器。它与 windows 平台的磨合程度非常好,但是在其他平台上就有所限制,使用 MASM 的开发人员必须在 windows 下进行开发。2.2 MASM 的使用汇编语言的实现也是先利用某种编辑器编写汇编语言源程序(*.ASM),然后经过汇编得到目标

5、模块文件(*.OBJ)、连接后形成可执行文件(*.EXE)。2.3 编译步骤1、先在 TXT 文件中书写汇编程序,保存格式为 ASM 格式。 2、再用 MASM 连编成 OBJ 文件,若有错误,则按照错误提示返回 ASM 文件 中修改。3、再用 LINK 将 OB 文件生成 EXE 文件。 4、最后在 DOS 命令窗口下调用生成的 EXE 文件,做相应调试。本科生课程设计(论文)2第 3 章 程序设计3.1 程序要求分析通过对课题深入探究,得到本次课程设计需要的一些软件。首先先要有一个汇编语言编辑器。本次使用的是masm for windows集成实验环境。由于此软件对win7的兼容有问题。不

6、能全屏显示,“this system does not support fullscreen mode”在运行时会出现此种情况。通过上网查资料有如下解释,由于软件不兼容,建议使用其他的工具。由于题目要求按字母“Y”画一个用点组成的圆;按字母“S”画一个用不同颜色填充的三角形;按字母“Z”画一个用不同颜色填充的矩形;所以本程序需要有画点函数、清屏函数、画圆函数、设置写模式的函数。3.2 设计思路根据基本原理设计思路拟定出设计方案。先编写好三角形、圆形和正方形的子程序,以供之后段内调用子程序。之后再编写图形变换的子程序,利用转移指令,调用子程序以及中断程序和堆栈等功能来实现设计的功能。 从键盘上输

7、入 Y 时,应出现以青色为底色的屏幕,在中间出现有十二个紫色点围成的圆,此时从键盘上输入 S 时,屏幕的底色为黑色,三角形应从屏幕的中上部开始出现,颜色由绿色变青色再变品红色;从键盘上输入 Z 时,会出现以黑色底色的屏幕,中间出现一个矩形,颜色由绿色变为青色再变为品红色再变为紫色等一系列变化。3.3 程序流程图本科生课程设计(论文)3开始从键盘读取字符 y,s,z,q设置字符颜色 设置字符颜色 设置字符颜色设置光标位置 设置光标位置 设置光标位置设置时间控制 设置时间控制 设置时间控制显示圆形图案 显示三角形图案 显示矩形图案出屏 出屏 出屏退出本科生课程设计(论文)4第 4 章 程序执行结果

8、按字母Y:图 4-1 用点组成的圆按字母S:图 4-2 不同颜色填充的三角形按字母Z:本科生课程设计(论文)5图 4-3 不同颜色填充的矩形按字母q:返回到DOS界面本科生课程设计(论文)6第 5 章 总结两周的汇编语言课程设计结束了,我的收获很大。通过课程设计的编程和对编程过程中遇到的问题的思考,有效的提高了我对汇编的认识和理解,切实的提高了我的编程能力,补全了我的不足。通过这次课程设计,我巩固所了学过的知识,能用汇编语言熟练地运用顺序、选择、循环三大结构,进一步掌握了各个指令的功能,特别是转向指令,掌握了子程序的定义及调用,以及正确地运用DEBUG 指令。在整个程序的编写中,调试占了很大部

9、分的时间。要想写好汇编语言的程序,必须认真对待代码的每一个细节,还必须熟练的掌握 debug 命令,这对程序的调试是非常重要的。通过这次实际动手能力的培养,我进一步熟悉了汇编语言的结构和使用方法,基本达到了能独立阅读、编制和调试一定规模的汇编语言程序的水平。另外,就是我对这门课内容的学习感受。要学好这门课,我认为应该做到以下三点:1) 课本上应该记住的东西一定要记住,记不住就没法做题,(例如指令,寻址方式等等)若记住你做题就会做,看程序也就能看懂,记不住见了它就会对它不知所措,一脸茫然。2)预习很重要,这一点不仅适用于这一科的学习,确切的说它适用于任何一科,有的同学这一点作的不好,上课只知道竖

10、着两个耳朵傻傻的听老师讲课,也不注意动动脑子随时思考,延续以前填鸭式的学习方式,想让老师讲给所有的东西,殊不知很多东西还要自己从书本获得。这就难免出现听不懂的情况,这好比让一个不懂外语的人听外语录音,在他的心里,听外语就像听天书一般,所以说你要学一点新东西,前提是你对它要有一点了解,不然的话你所作的一切只不过是在浪费时间,浪费金钱,浪费生命。3)理论与实践相结合,不懂的地方应勤问老师勤问同学,直到把它搞懂为止。本人签字:本科生课程设计(论文)7参考文献1 温冬蝉、沈美明IBM PC 汇编语言程序设计北京:清华大学出版社,2007.52 刘其明.汇编语言程序设计教程.徐州:中国矿业大学出版社,2

11、0103 钱晓捷.新版汇编语言程序设计.北京:电子工业出版社,20074 何小海,严华 . 微机原理与接口技术.北京:科学出版社,20065 周佩玲、彭虎、傅忠谦.微机原理与接口技术. 北京:电子工业出版社.,20056 马春燕.微机原理与接口技术实验与学习辅导. 北京:电子工业出版社.,20077 陈继红.微机原理及应用M.北京:高等教育出版社,2011:276-2838 周明德.微型计算机系统原理及应用M.北京:清华大学出版社,20079 雷印胜.微型计算机接口技术M.北京:科学出版社,2011本科生课程设计(论文)8附录程序源代码DATA SEGMENTINFO1 DB 0DH,0AH,

12、please choose the letter y,s,z:;提示语句DB 0DH,0AH,input q to quit,$ ;提示语句INFO2 DB 0DH,0AH,choose error!,$ ;提示语句D3 DW 0TOTAL DB 12DOTYX DB 50,160 DB 60,135 DB 60,185DB 75,115 DB 75,205 DB 95,110 DB 95,210 DB 110,114 DB 110,210 DB 130,135 DB 130,195 DB 145,165 DATA ENDS ;数据段结束STACKS SEGMENT STACK ;堆栈段DB

13、200 DUP(0) STACKS ENDS ;堆栈段结束CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKSSTART PROC FAR MOV AX,DATA MOV DS,AX ;初始化数据段 MOV AH,0 本科生课程设计(论文)9MOV AL,4 INT 10HINPUT: LEA DX,INFO1 MOV AH,9 INT 21H MOV AH,08INT 21H CMP AL,s ;与S进行比较 JZ SA ;若相等跳转到 SA CMP AL,z ;与Z进行比较 JZ ZHEN ;若相等跳转到 ZHEN CMP AL,y ;与Y 进行比较

14、JZ YUA ;若相等跳转到 YUA CMP AL,q ;与q进行比较 JZ EXIT ;若相等跳转到 EXIT MOV DX,OFFSET INFO2 ;取 INFO2 偏移地址 MOV AH,09 INT 21HSA: CALL SAN ;调用 SAN JMP INPUT ;跳转到 INPUT ZHEN: CALL ZHENG ;调用 ZHENG JMP INPUT ;跳转到 INPUT YUA: CALL YUAN ;调用 YUAN JMP INPUT ;跳转到 INPUT EXIT: MOV AH,4CH ;返回 DOS 系统INT 21HRET ;返回START ENDP SAN P

15、ROC NEAR PUSH AX ;压 栈 PUSH BX PUSH CX PUSH DX MOV AH,0 MOV AL,12H 本科生课程设计(论文)10INT 10H MOV AL,1 A0: MOV DX,1 MOV D3,1 MOV CX,320 A1: PUSH CX PUSH D3 A2: MOV AH,12PUSH AX INT 10H POP AX INC CX SUB D3,1 JNZ A2 POP D3 ADD D3,2 POP CX INC DX DEC CX JNE A1 INC AL CMP AL,5 JNE A0 POP DX POP CX POP BX POP

16、AXRET SAN ENDP ;SAN 子程序结束 ZHENG PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX MOV AH,0FH 本科生课程设计(论文)11INT 10H MOV AH,0 MOV AL,3 INT 10H MOV CX,1 ;字符数量 MOV AH,2 MOV DH,5 ;5 行开始 MOV DL,25 ;25 列开始 INT 10H ;*光标向下动*LINE: MOV AH,2 INT 10H MOV AL,2 MOV AH,9 MOV BL,0E0H ;字符黄色 INT 10H INC DH ;行增加 CMP DH,20 ;20 行

17、 JNE LINE JMP LINE1 ; *光标向右动*LINE1: MOV AH,2 INT 10H MOV AL,2 MOV AH,9 MOV BL,0E0H ; 字符为黄色 INT 10H INC DL ; 列增加 CMP DL,55 ; 55 列 JNE LINE1 JMP LINE2 ;*光标向上动*LINE2: MOV AH,2 INT 10H MOV AL,2 MOV AH,9 MOV BL,0E0H ;字符为黄色 INT 10H 本科生课程设计(论文)12DEC DH CMP DH,5 JNE LINE2 JMP LINE3 ; *光标向左动* LINE3: MOV AH,2

18、 INT 10H MOV AL,2 MOV AH,9 MOV BL,0E0H ; 字符为黄色 INT 10H DEC DL CMP DL,25 JNE LINE3 L00: MOV AH,7 MOV AL,14 MOV BH,20H ; 绿色 MOV CH,6 MOV CL,26 MOV DH,19 MOV DL,54 INT 10H ; *时间控制*L01: MOV AH,0 INT 1AH CMP DL,10 JNZ L01 L1: MOV AH,6 MOV AL,14 MOV BH,0F0H ; 白色 MOV CH,6 MOV CL,26 MOV DH,19 MOV DL,54 INT

19、10HL2: MOV AH,0 INT 1AH 本科生课程设计(论文)13CMP DL,15 JNZ L2 L3: MOV AH,7 MOV AL,14 MOV BH,40H ;红色 MOV CH,6MOV CL,26MOV DH,19MOV DL,54INT 10HL4: MOV AH,0INT 1AHCMP DL,30JNZ L4L5: MOV AH,6MOV AL,14MOV BH,0D0HMOV CH,6MOV CL,26MOV DH,19MOV DL,54INT 10HL004: MOV AH,0 INT 1AH CMP DL,10 JNZ L004 L005: MOV AH,7 M

20、OV AL,14 MOV BH,30H ; 青色 MOV CH,6 MOV CL,26 MOV DH,19 MOV DL,54 INT 10HL006: MOV AH,0 本科生课程设计(论文)14INT 1AH CMP DL,10 JNZ L006 L02: MOV AH,7 MOV AL,14 MOV BH,20H ; 绿色 MOV CH,6 MOV CL,26 MOV DH,19 MOV DL,54 INT 10H ; *时间控制* MOV AH,2 MOV DH,23 MOV DL,0 INT 10H POP DX POP CX POP BX POP AX RETZHENG ENDP

21、;ZHENG 子程序结束 YUAN PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX MOV AX,0004HINT 10HMOV BX,00 PUSH BX MOV AH,0BH INT 10H MOV BX,0003H MOV AH,0BH INT 10H 本科生课程设计(论文)15MOV BL,TOTAL MOV SI,OFFSET DOTYX MOV CH,0 MOV DH,CH PLO: MOV DL,SI MOV CL,SI+1 MOV AL,02H MOV AH,0CH INT 10H INC SI INC SI DEC BL JNZ PLO MOV BX,50 POP BX POP DX POP CX POP BX POP AX RETYUAN ENDP ;YUAN 子程序结束 CODE ENDS ;代码段结束 END START

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 网络科技 > 计算机原理

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报