ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:117.84KB ,
资源ID:7091722      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7091722.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(微机原理.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

微机原理.docx

1、微机原理郑州航空工业管理学院微机原理课程设计说明书 2012 级 电气工程及其自动化 专业 1206972 班级题 目 字符图形显示 姓 名 学号 120697226 指导教师 王义琴 职称 讲师 二一二 年 十二月 十三 日摘 要本次课程设计是通过编写汇编语言程序,实现字符图形的显示,具体实现的方法可以通过在MASM使用环境下运行,也可以通过在DOS环境下完成。元旦即将到来,所以我显示的字符是“元旦”。在编写初期,我对字符“元旦”进行了设计,确定了每个字符所在的位置,以便在编写程序的时候正确定义字符的属性,也为在显示的时候能够显示较好的效果,打下了基础。接着开始编写程序,编写完程序后,对程序

2、进行了注释,最后调试出所要求的字符。本程序可以在DOS环境和MASM环境下运行,要求我们熟悉BIOS中断10的各种功能,因此程序编写前,我先认真学习了该BIOS中断的有关功能。万事开头难,一旦了解了设计此程序的原理,并在此基础上掌握相关的技术,其他的工作也就跟着展开来。关键词:字符显示,10号中断,图形,BIOS 一、设计目的本次设计的目的主要是为了让大家进一步的学会汇编程序的编译,链接,执行操作。深入了解利用汇编指令是如何实现对存储器及寄存器访问的,并在此基础上学会用汇编指令、伪指令、BIOS中断调用、DOS中断调用及子程序等实现相应的功能。字符图形程序设计的重点在于加强学生对BIOS中断1

3、0的学习,了解该中断的相应功能,感受中断调用给汇编程序带来的方便。通过编写汇编语言,实现字符图形的显示,让学生加深了对汇编程序理论课程的理解,更加了解汇编语言的应用,并且能够按要求编写程序,从而提高学生的汇编语言知识,更进一步地了解了汇编语言,通过本次设计,可以让学生深刻体会到中断调用的功能,可以提高我们的动手能力,培养我们对编程及学习的兴趣。通过编写程序使我们对指令的应用更加熟练。同时,也使我们对MASMDIT软件和DOS命令有了更多的学习和了解。目的在于培养我们的自主学习能力和动手能力,提高我们的编程水平。二、字符图形显示的基本原理本程序是显示由多个字符组成的图形的程序,将多个字符定义在一

4、个字符图形表里。字符图形表包括每个字符的ASCII码、属性以及在显示图形中的相对位移量,应注意的是,每个字符的位置由前一个字符的位置决定。这个字符图形表由这4个参数组成。字符图形表中的第一个字节“94”是组成图形的字符数,编写程序时需要将每个字符的ASCII码和属性以及显示的位置放入相应的寄存器中,然后发出显示命令, 94个字符都显示出来后,我们就可以看到“元旦”的图形了。为了清晰地看到每一个字,需要延时,程序中编写了延时子程序。此外,程序中还有清屏子程序和移动子程序,通过适当的改变延时时间,可实现图形的移动。三、软件设计1、总体设计 首先,定义了一个字符图形表“元旦”,设置的字符的类型为DB

5、即为字节类型,字符的ACSII码为03H,显示出来的图形为心形,设置字符的属性为122。显示完整个字符图形表共需要102行代码,设置初始字符所在的位置为相对于光标位置的(-2,1)位置,前面的-2表示的是列坐标,而后面的1表示的是行坐标。此后的代码的行列坐标都是相对于前一字符的相对位置,如列坐标的1表示的是向下移动一位,列坐标的-1表示的是像上移动一位,列坐标的0则表示纵向不发生移动。同理,横坐标的1表示的是向右移动一位,横坐标的-1表示的是像左移动一位,横坐标的0则表示横向不发生移动。此为数据段的内容。然后定义了一个堆栈段,开辟了大小为2000字节的空间。接下来则是代码段的内容,包括初始化D

6、S的内容、设置图形方式、设置背景颜色、设置彩色调板、清屏、延时、按任意键退出等内容。2、主模块及子模块说明主模块是一个主程序,在这个程序中首先设置显示方式、背景颜色、调色板,然后调用清屏子程序CLEAR-SCREEN,为接下来的图形显示做好准备,然后设置好初始行列坐标后,再调用移动子程序MOVE-SHAPE来显示字符,然后调用INT 21h的7h号中断功能,使得从键盘输入q字符时,退出程序运行。第一个子模块是CLEAR-SCREEN子程序,他的功能是清理屏幕,为接下来字符显示准备条件,第二个子模块是MOVE-SHAPE,它通过循环和行列坐标的控制来依次显示字符图形,为功能实现部分。3、程序流程

7、图设计 4、各模块源程序设计下面是整体的代码,各个子模块在程序中加以注释。DATA SEGMENT CAR DB 94 ;定义字符 DB 02H,122,-5,3 DB 02H,122,0,-1 CHAR_CNT DW ? POINTER DW ? LINE_ON DB ? COL_ON DB ? DATA ENDS STACKI SEGMENT DB 2000 DUP (?) STACKI ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKI MAIN PROC FAR ;定义过程 PUSH DS SUB AX,AX ;清0 PUSH AX M

8、OV AX,DATA MOV DS,AX MOV AH,0 ;0号功能调用,设置显示模式 MOV AL,0 ;显示模式的属性为 320*200 4色 INT 10H ;10号中断调用,BIOS 对荧幕及显示器所提供的服务程式 MOV AH,0BH ;0B功能调用,设置调色板,背景色或边框 MOV BH,0 ;设置颜色 MOV BL,2 ;颜色 INT 10H MOV AH,0BH MOV BH,01 ;选择调色板 MOV BL,00 ;调色板00 INT 10H CALL CLEAR_SCREEN ;调用清屏子程序 LEA DI,CAR MOV DH,10 MOV DL,2 CALL MOVE

9、_SHAPE MOV AH,8 ;8号功能调用,无回显的字符的输入 INT 21H ;中断21 CMP AL,71H JZ EXIT ;标志位结果为0转移 JB NEXT ;无符号数低于时转移 NEXT: CMP AL,51H JZ EXIT MAIN ENDP CLEAR_SCREEN PROC NEAR ;清屏子程序 PUSH AX ;保护现场 PUSH BX PUSH CX PUSH DX MOV AH,6 ;6号功能调用,初始化屏幕 MOV AL,0 ;清窗口 MOV CH,0 ;窗口的左上角位置(0,0) MOV CL,0 MOV DH,120 ;右下角位置(200,120) MOV

10、 DL,200 MOV BH,7 ;空白区域的缺省属性 INT 10H ;10号中断调用 POP DX ;恢复现场 POP CX POP BX POP AX RET ;返回 CLEAR_SCREEN ENDP DLY_QRTR PROC NEAR ;延时子程序 PUSH CX PUSH DX MOV DX, 5000 D11: MOV CX, 25000 D12: LOOP D12 ;循环25000次 DEC DX ;DX-1 JNZ D11 ;结果不为0时转移 POP DX POP CX RET DLY_QRTR ENDP MOVE_SHAPE PROC NEAR ;擦除子程序 PUSH A

11、X PUSH BX PUSH CX PUSH DX PUSH DI MOV AH,0FH ;读取显示器模式 INT 10H SUB CH,CH ;清0 MOV CL,DI INC DI ;DI+1 MOV CHAR_CNT,CX MOV POINTER,DI MOV LINE_ON,DH MOV COL_ON,DL MOV_CRSR: ADD DH,DI+2 ;Y坐标 ADD DL,DI+3 ;X坐标 MOV AH ,2 ;用文本坐标下设置光标位置 INT 10H MOV AL,DI ;字符 MOV BL,DI+1 ;属性或颜色 PUSH CX MOV CX,1 ;重复输出字符的次数 MOV

12、AH,09 ;在当前光标处按指定属性显示字符 INT 10H POP CX ADD DI,4 LOOP MOV_CRSR POP DI POP DX POP CX POP BX POP AX RET MOVE_SHAPE ENDP EXIT: MOV AH,4CH ;终止当前程序并返回调用程序 INT 21H CODE ENDS END MAIN四、程序调试本程序可以在MASM环境下运行,也可在DOS环境下运行,由于在MASM环境下操作较为简单,因此不做说明。下面介绍在DOS环境下运行的过程。1、用MASM命令对程序进行编译2、用link命令对程序进行连接3、进入debug,用命令g执行程序

13、本次设计的思想便是利用字符来拼凑一个图形,调用画图子程序循环的输出不同位置的字符,直到所需的所有字符输出完,图形也就显示出来了。需要注意的是,每字符的位置由它前一个字符确定。本程序可以在DOS环境和MASM环境下运行,在DOS环境下运行,首先用MASM命令将源程序.ASM进行编译,生成.OBJ文件;其次,用Link命令进行连接,产生.exe文件;最后进入debug,用-g命令进行调试运行。值得注意的是,各个阶段产生的目标文件的文件格式不同,因此在输入命令的时候,要注意文件的后缀名。若是在MASMEDIT软件下运行,则只需点击相应的功能按钮即可。用MASMEDIT软件运行的界面友好,视觉效果相对

14、于DOS界面要好看。五、心得体会 选择这个题目时,第一感觉是不知道从哪里下手。以前所做的汇编实验,多是对存储器,寄存器的内容进行处理,而这次字符图形显示。看着老师给的提示,我也不是很明白这个程序的最终成果到底是什么样子的。定义字符列表是干什么用的呢?以前从没有碰到过关于定义列表的东西啊?带着这些疑问,我先是问了老师,老师说用很多个字符拼成一个图形,所以要定义一个字符列表来存放组成图形的每个字符,及其相应的属性。有了一个大概的框架,了解了程序设计的目的,我着手就容易多。利用网络资源我搜到了一个显示“中国北京”的源程序。通过对该程序的分析,了解了这个程序实现字符图形显示的大概流程,及设计的相关功能

15、模块。这样,我在写某些功能模块时,就借鉴了网上下下来的源程序。通过课程设计,我领悟到我们应该有一个缜密的编程思想,在编程过程中,首先要对整体程序有一个初步的框架构想,然后根据所学的知识,活用指令,能够使程序更加精简,这就要求我们对指令要熟悉。在日常生活中,可以通过编写一些小的程序,来熟悉指令的使用和记忆。在设计过程中也遇到了一些困难,通过和老师、同学的讨论和学习,最终程序得以完成,所以,在完成每一件事情时,不能忽略团队的力量,应当吸取各人的优势,来使自己更加完善。对于本次课程设计我受益匪浅,很感谢老师和同学的帮助。参考文献1、李敬兆 .8086/8088和arm核汇编语言程序设计. 合肥:中国

16、科技大学出版社 2、沈美明,温冬婵编著.IBMPC汇编语言程序设计(第二版). 北京:清华大学出版社出版3、沈美明,温冬婵,张赤红 编著.IBMPC 汇编语言程序设计实验教程. 北京:清华大学出版社出版4、钱晓捷. 新版汇编语言程序设计M.北京:电子工业出版社,20065、卜艳萍,周伟.汇编语言程序设计教程.北京:清华大学出版社,20076、宋人杰,牛斗.汇编语言程序设计.北京:清华大学出版社,20087、王爽.汇编程序设计语言.北京:清华大学出版社,2008设计总结:从选择课题开始,经历了收集资料,总体设计,详细设计,调试等阶段。在每个阶段都要求的阶段性成果,同时也深深感到书本知识和实践的差

17、距,如果没有这实践的经历,书本知识永远都只是书本知识,会因为没有实践的验证和巩固而渐渐遗忘。只有将学到的知识用到实践,知识才能真正意义上被掌握,被发挥作用。总的来说,在知道本次设计要实现什么功能后,目标还是很明确的。在咨询老师的帮助下,以及在网上查看相关资料,这次课程设计做得比较顺利。通过本次课程设计,我基本掌握了怎样运用汇编语言去设计字符图形,并制作出相应的流程图。此外,加强了我对MASM软件的熟悉与使用。另外,因为我的笔记本系统不支持doc全屏显示,但是通过对中断及显示方式的进一步查阅和了解,我解决了这个问题。很感谢老师,在图形坐标的制作上我遇到了点困难,但通过研究所查找的资料和对源程序的分析,基本上可以定义正确的字符图形表。整个课程设计的过程,是一个不断学习、不断实践的过程,从而提高了我们的编程能力和程序开发思想,也提高了我们自主学习的能力。指导教师评语:课程设计成绩: 指导教师签名: 年 月 日

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1