汇编语言字符图形程序实验报告Word文档下载推荐.docx

上传人:b****5 文档编号:16195092 上传时间:2022-11-21 格式:DOCX 页数:14 大小:131.40KB
下载 相关 举报
汇编语言字符图形程序实验报告Word文档下载推荐.docx_第1页
第1页 / 共14页
汇编语言字符图形程序实验报告Word文档下载推荐.docx_第2页
第2页 / 共14页
汇编语言字符图形程序实验报告Word文档下载推荐.docx_第3页
第3页 / 共14页
汇编语言字符图形程序实验报告Word文档下载推荐.docx_第4页
第4页 / 共14页
汇编语言字符图形程序实验报告Word文档下载推荐.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

汇编语言字符图形程序实验报告Word文档下载推荐.docx

《汇编语言字符图形程序实验报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《汇编语言字符图形程序实验报告Word文档下载推荐.docx(14页珍藏版)》请在冰豆网上搜索。

汇编语言字符图形程序实验报告Word文档下载推荐.docx

学生成绩管理

题目六:

打字练习(注:

请在自己选做的题目后打√)

1.熟悉汇编指令、宏汇编语言的编程方法

2.BIOS中断调用、系统功能中断调用方法

3.磁盘文件、及文件内容操作

题目的选择是根据汇编语言的特点主要针对系统内部的一些中断调用、系统功能调用、系统数据处理、文件数据处理而设计的,是对所学课程知识较为系统的应用。

由于汇编语言编程相对其他语言编程比较复杂,因此,在设计上应把重点放在程序的功能实现上,不要太在意程序的结构和显示界面的设计。

不要局限于题目所规定的要求,可以灵活裁减,设计出功能更完善程序。

另外,也可以自己设计题目,同时,提出详细的功能描述,经指导老师审查同意后也可作为课程设计的题目。

1.完成所选题目的软件设计;

2.课程设计说明书1000字(不包括程序源代码)左右。

第1次熟悉软件环境。

第2次绘制程序流程图。

第3次用编写程序。

第4次用调试运行程序。

第5次编写课程设计说明书

1.李敬兆8086/8088和arm核汇编语言程序设计中国科技大学出版社

2.沈美明,温冬婵编著IBM—PC汇编语言程序设计(第二版)清华大学出版社出版

3.沈美明,温冬婵,张赤红编著IBM—PC汇编语言程序设计实验教程清华大学出版社出版

指导教师签字

教研室主任签字

2010年12月17日

安徽理工大学课程设计(论文)成绩评定表

指导教师评语:

成绩:

年月日

摘要

本课程设计是通过使用汇编语言来完成的,具体实现的方法可以通过在MASM使用环境下运行,也可以通过在DOS环境下完成。

我做的课程设计是通过编写汇编语言程序,实现字符图形的显示。

元旦即将到来,所以我显示的字符是“元旦”。

在编写初期,我对字符“元旦”进行了设计,确定了每个字符所在的位置,以便在编写程序的时候正确定义字符的属性,也为在显示的时候能够显示较好的效果,打下了基础。

接着开始编写程序,编写完程序后,对程序进行了注释,最后调试出所要求的字符。

本程序可以在DOS环境和MASM环境下运行,要求我们熟悉BIOS中断10的各种功能。

整个课程设计的过程,是一个不断学习、不断实践的过程,从而提高了我们的编程能力和程序开发思想,也提高了我们自主学习的能力。

关键词:

字符显示,10号中断,图形,BIOS

目录

1设计目的1

2概要设计2

2.1系统总体分析2

2.2主模块框图及说明2

3详细设计4

3.1主模块及子模块说明4

3.2各模块详细设计4

4.程序调试10

4.1运行界面分析10

4.2算法的分析11

4.3调试过程及分析11

5心得体会12

5.1设计体会12

5.2系统改进12

参考文献13

1设计目的

在课程设计之前,首先要明确设计的目的。

本次课程设计的题目是字符图形显示,要求我们能够编写一个汇编程序,正确的显示所要求的字符。

这就需要我们对汇编指令有一定的了解,通过课程设计,我们能更深入的了解汇编程序的基本框架,更熟练的运用汇编指令。

在本课程设计中,还着重运用了BIOS10号中断调用及其功能,这就要求我们在这一个小模块有更深的学习。

通过课程设计,可以提高我们的动手能力,培养我们对编程及学习的兴趣。

通过编写程序使我们对指令的应用更加熟练。

同时,也使我们对masmedit软件和dos命令有了更多的学习和了解。

目的在于培养我们的自主学习能力和动手能力,提高我们的编程水平。

2概要设计

2.1系统总体分析

本程序是显示由多个字符组成的图形的程序,余姚将多个字符定义在一个字符图形表里。

字符图形表包括每个字符的ASCII码、属性以及在显示图形中的相对位移量,值得注意的是,每个字符的位置由前一个字符的位置决定。

这个字符图形表由这4个参数组成。

字符图形表中的第一个字节“94”是组成图形的字符数,编写程序时需要将每个字符的ASCII码和属性以及显示的位置放入相应的寄存器中,然后发出显示命令,党94个字符都显示出来后,我们就可以看到“元旦”的图形了。

为了清晰地看到每一个字,需要延时,程序中编写了延时子程序。

此外,程序中还有清屏子程序和移动子程序,通过适当的改变延时时间,可实现图形的移动。

2.2主模块框图及说明

字符程序的结构流程图如图2-1所示

图2-1程序流程图

3详细设计

3.1主模块及子模块说明

为了清晰地看到每一个字,需要延时,程序中编写了延时子程序DLY_QRTRPROCNEAR。

此外,程序中还有清屏子程序CLEAR_SCREENPROCNEAR和移动子程序MOVE_SHAPEPROCNEAR,通过适当的改变延时时间,可实现图形的移动。

3.2各模块详细设计

下面是整体的代码,各个子模块在程序中加以注释。

DATASEGMENT

CARDB94;

定义字符

DB02H,122,-5,3

DB02H,122,0,-1

CHAR_CNTDW?

POINTERDW?

LINE_ONDB?

COL_ONDB?

DATAENDS

STACKISEGMENT

DB2000DUP(?

STACKIENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACKI

MAINPROCFAR;

定义过程

PUSHDS

SUBAX,AX;

清0

PUSHAX

MOVAX,DATA

MOVDS,AX

MOVAH,0;

0号功能调用,设置显示模式

MOVAL,0;

显示模式的属性为320*2004色

INT10H;

10号中断调用,BIOS對螢幕及顯示器所提供的服務程式

MOVAH,0BH;

0B功能调用,设置调色板,背景色或边框

MOVBH,0;

设置颜色

MOVBL,2;

颜色

INT10H

MOVAH,0BH

MOVBH,01;

选择调色板

MOVBL,00;

调色板00

INT10H

CALLCLEAR_SCREEN;

调用清屏子程序

LEADI,CAR

MOVDH,10

MOVDL,2

CALLMOVE_SHAPE

MOVAH,8;

8号功能调用,无回显的字符的输入

INT21H;

中断21

CMPAL,71H

JZEXIT;

标志位结果为0转移

JBNEXT;

无符号数低于时转移

NEXT:

CMPAL,51H

JZEXIT

MAINENDP

CLEAR_SCREENPROCNEAR;

清屏子程序

PUSHAX;

保护现场

PUSHBX

PUSHCX

PUSHDX

MOVAH,6;

6号功能调用,初始化屏幕

清窗口

MOVCH,0;

窗口的左上角位置(0,0)

MOVCL,0

MOVDH,120;

右下角位置(200,120)

MOVDL,200

MOVBH,7;

空白区域的缺省属性

10号中断调用

POPDX;

恢复现场

POPCX

POPBX

POPAX

RET;

返回

CLEAR_SCREENENDP

DLY_QRTRPROCNEAR;

延时子程序

MOVDX,5000

D11:

MOVCX,25000

D12:

LOOPD12;

循环25000次

DECDX;

DX-1

JNZD11;

结果不为0时转移

POPDX

RET

DLY_QRTRENDP

MOVE_SHAPEPROCNEAR;

擦除子程序

PUSHAX

PUSHDI

MOVAH,0FH;

读取显示器模式

SUBCH,CH;

MOVCL,[DI]

INCDI;

DI+1

MOVCHAR_CNT,CX

MOVPOINTER,DI

MOVLINE_ON,DH

MOVCOL_ON,DL

MOV_CRSR:

ADDDH,[DI+2];

Y坐标

ADDDL,[DI+3];

X坐标

MOVAH,2;

用文本坐标下设置光标位置

MOVAL,[DI];

字符

MOVBL,[DI+1];

属性或颜色

MOVCX,1;

重复输出字符的次数

MOVAH,09;

在当前光标处按指定属性显示字符

ADDDI,4

LOOPMOV_CRSR

    

POPDI

MOVE_SHAPEENDP

EXIT:

MOVAH,4CH;

终止当前程序并返回调用程序

INT21H

CODEENDS

ENDMAIN

4.程序调试

4.1运行界面分析

本程序可以在masm环境下运行,也可在DOS环境下运行,由于在MASM环境下操作较为简单,因此不做说明。

下面介绍在DOS环境下运行的过程。

(1)用masm命令对程序进行编译,如图4-1所示

图4-1编译程序

(2)用link命令对程序进行连接,如图4-2所示

图4-2连接程序

(3)进入debug,用命令g执行程序,结果如图4-3所示

图4-3字符图形显示

4.2算法的分析

本次设计的思想便是利用字符来拼凑一个图形,调用画图子程序循环的输出不同位置的字符,直到所需的所有字符输出完,图形也就显示出来了。

需要注意的是,每字符的位置由它前一个字符确定。

4.3调试过程及分析

本程序可以在DOS环境和MASM环境下运行,在DOS环境下运行,首先用masm命令将源程序.asm进行编译,生成.obj文件;

其次,用Link命令进行连接,产生.exe文件;

最后进入debug,用-g命令进行调试运行。

值得注意的是,各个阶段产生的目标文件的文件格式不同,因此在输入命令的时候,要注意文件的后缀名。

若是在MASMEDIT软件下运行,则只需点击相应的功能按钮即可。

用MASMEDIT软件运行的界面友好,视觉效果相对于DOS界面要好看。

5心得体会

5.1设计体会

这次课程设计总体来说做得比较顺利。

在设计前期,我翻阅了很多资料,加深了对汇编语言的学习,基本掌握了怎样运用汇编语言去设计字符图形,并制作出相应的流程图。

程序中主要用到显示输出管理10号中断调用及其多种功能。

我就这方面进行了深入的学习,掌握了各个功能的运用。

在设计前期,我查找了相关书记和资料,更加深入的学习了汇编指令和中断调用的知识,能够得以应用,并根据流程图,设计出程序的大概框架;

在设计的中期,我将各个模块细化,并编写了子程序,并将主程序和子程序进行衔接;

在设计的后期,我认真的检查了程序调用和参数传递等细节,保证程序的正确性。

通过课程设计,我领悟到我们应该有一个缜密的编程思想,在编程过程中,首先要对整体程序有一个初步的框架构想,然后根据所学的知识,活用指令,能够使程序更加精简,这就要求我们对指令要熟悉。

在日常生活中,可以通过编写一些小的程序,来熟悉指令的使用和记忆。

在设计过程中也遇到了一些困难,通过和老师、同学的讨论和学习,最终程序得以完成,所以,在完成每一件事情时,不能忽略团队的力量,应当吸取各人的优势,来使自己更加完善。

5.2系统改进

虽然本程序基本满足了本次课程设计的要求,但其中依然有很多需要改进的地方。

可以通过对BIOS10号中断的深入学习,使得界面更加美化。

还有代码的简化,可以从平时的编程或者学习中,找到更好的方法来优化程序。

程序中的子程序只是字符显示的部分功能,可以加以改进,使系统更加完善

参考文献

[1]李敬兆.8086/8088和基于ASM核汇编语言程序设计(第二版).合肥:

中国科学技术大学出版社,2008

[2]沈美明,温冬婵.IBM—PC汇编语言程序设计(第二版).北京:

清华大学出版社出版,2007

[3]沈美明,温冬婵,张赤红.IBM—PC汇编语言程序设计实验教程.北京:

清华大学出版社出版,2007

[4]李敬兆.8086/8088和基于ASM核汇编语言程序设计实验教材及习题解答.合肥:

[5]钱晓捷.新版汇编语言程序设计[M].北京:

电子工业出版社,2006

[6]卜艳萍,周伟.汇编语言程序设计教程.北京:

清华大学出版社,2007

[7]宋人杰,牛斗.汇编语言程序设计.北京:

清华大学出版社,2008

[8]王爽.汇编程序设计语言.北京:

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

当前位置:首页 > 工程科技 > 电力水利

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

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