汇编综合项目教学课件_第1页
汇编综合项目教学课件_第2页
汇编综合项目教学课件_第3页
汇编综合项目教学课件_第4页
汇编综合项目教学课件_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

汇编综合实验项目汇编综合目录实验要求实验方法和原理实验过程、步骤及其分析实验结论目录实验要求实验方法和原理实验过实验要求实验要求试编写一程序实现以下功能:使一个特定字符从左下角上升到右上角,然后回到左下角,再上升到右上角,重复运行,直到按任意键时退出。(利用bios中断int10h)程序思路为:显示某图形、延时、清除该图形、修改图形显示位置,如没有键按下,则重复以上过程,如有键按下则退出。实验要求试编写一程序实现以下功能:使一个特定字符从左下实验方法及原理实验方法及原理BIOS中断BIOS中断务程序实质上是微机系统中软件与硬件之间的一个可编程接口,主要用于程序软件功能与微机硬件之间。10H为BIOS服务的视频服务功能描述:为显示适配器提供I/O支持。16H为BIOS服务的键盘服务功能描述:为键盘提供I/O支持。常用的BIOS服务功能见书192页BIOS中断BIOS中断务程序实质上是微机系统02H功能: 功能描述:设置光标的位置 入口参数:AH=02H BH=显示页码

DH=行(Y坐标)

DL=列(X坐标)

出口参数:无

实例:

MOVAH,02H MOVDX,0 INT10HXY0INT10H02H功能:XY0INT10H7功能0AH

:

功能描述:在当前光标处按原有属性显示字符

入口参数:AH=0AH

AL=字符

BH=显示页码

BL=颜色(图形模式,仅适用于PCjr)

CX=重复输出字符的次数 出口参数:无

实例:

MOVAL,41H MOVAH,0AH INT10INT10H功能0AH

:INT10H8功能0FH

功能描述:读取显示器模式 入口参数:AH=0FH

出口参数:AH=屏幕字符的列数

AL=显示模式(参见功能00H中的说明) BH=页码 例如:

MOVAH,0FH INT10H ;获得当前页号

MOVAH,0 MOVAL,2 INT10H ;设置为80列25行黑白方式

INT10H功能0FHINT10H9INT16H功能01H:

功能描述:读取键盘状态

入口参数:AH=01H(检查普通键盘

) 出口参数:ZF=1,则无字符输入

ZF=0时,AH=键盘的扫描码AL=ASCII码。 例如:

MOVAH,01H INT16H

;在键盘上输入一个字符A, 那么此时AL=41H。INT16H功能01H:10实验过程、步骤及其分析实验过程、步骤及其分析程序方框图程序方框图SEGMENTSTACK DW64DUP(?)STACK ENDSCODE SEGMENT ;代码段初始化

ASSUMECS:CODE,SS:STACK;代码段与存储器的对应

MOVAX,STACKMOVSS,AXMOVSP,AXMOVECHA PROCFAR ;定义子程序 MOVAH,0FH ;调用0F号DOS命令,取当前显示方式(返回参数:页号,字符列数,

显示方式)

INT10H ;获得当前页号

MOVAH,0 ;调用0号DOS功能,设置显示方式(颜色,文本) MOVAL,2 ;设置光标位置

INT10H ;设置为80列25行行动黑白本方式

MOVCX,1 ;设置要显示的字符个数DISPLAY:MOVDX,1800H ;置光标位置(24,0)

代码分析SEGMENTSTACK代码分析13LOP1: MOVAH,2 ;设置光标位置

INT10H ; MOVAL,26H ;显示字符,此处改变就好,显示不同字符

MOVAH,0AH ;0A号DOS命令,在光标位置显示字符

INT10H CALLDELAY ;延时

MOVAH,1 ;读取键盘缓冲区字符

INT16H JNZEN ;三句判断输入任意键则结束

XORAL,AL MOVAH,0AH INT10H ;清除原图形

INCDL ;下个输出位置向右移动三位

INCDL INCDL DECDH ;下个输出位置向上移动一位

JNZLOP1 ;未到顶行则循环从左下到右上LOP1: MOVAH,2 ;设置光标位置 从左下14LOP2: MOVAH,2 ;

INT10H MOVAL,26H ;显示字符,此处改变就好,显示不同字符

MOVAH,0AH ;键盘输入到缓冲区

INT10H CALLDELAY ;延时

MOVAH,1 INT16H JNZEN ;三句判断输入任意键则结束

XORAL,AL ;AL清零

MOVAH,0AH ;键盘输入到缓冲区

INT10H ;清除原图形

DECDL ;下个输出位置向左移动三位

DECDL DECDL INCDH ;下个输出位置向下移动一位

CMPDH,18H ;DH小于18h没到底部

JNZLOP2 ;未到底行则循环

JMPDISPLAY ;无键入图形则再显示移动,从头来

RETCODE ENDS ENDMOVECHA从右上到左下LOP2: MOVAH,2 ;从右上到左下15DELAY MOVECHAENDPEN: MOVAH,4CH;带返回码结束

INT21HDELAY PROCNEAR;延时函数,移动后等待一段

时间再重新移动

PUSHCX;保护DX和CX PUSHDX MOVDX,100;改变可改变移动的等待时间DE1: MOVCX,2801;DX是嵌套在CX中的循环DE2: LOOPDE2 DECDX JNZDE1 ; POPDX POPCX RET延时函数MOVCX,1 ;设置要显示的MOVDX,1800H ;置光标位置(24,0)DELAY MOVECHAENDP延时函数MOVCX,16流程图流程图17运行结果实现特殊字符从左下角上升到右上角,然后回到左下角,再上升到右上角,重复运行按任意键退出运行结果实现特殊字符从左下角上升到右上角,按任意键退出18实验结论实验结论本实验的目的是为了实现将特定字符从左下角上升到右上角,然后回到左下角,一直显示直到有任意键输入。首先是小组分析和讨论课题,确定程序思路和画程序流程图,然后着手设计,这个过程磨合修改的过程中的收获最大,也是完成这个项目的核心。在寻找demo然后根据要求修改的过程中,我们自主学习了很多课堂以外的知识点,比如如何设置黑白方式,怎样实现光标的移动,尤其是对BIOS中断这一块进行了深入学习。总体来说,在短时间内完成这样一个课题确实投入了很多时间和心思,但是最后成功做出来了还是有很大的收获。实验结论本实验的目的是为了实现将特定字符从左下角上升到右上角,然后回感谢您的聆听感谢您的聆听汇编综合实验项目汇编综合目录实验要求实验方法和原理实验过程、步骤及其分析实验结论目录实验要求实验方法和原理实验过实验要求实验要求试编写一程序实现以下功能:使一个特定字符从左下角上升到右上角,然后回到左下角,再上升到右上角,重复运行,直到按任意键时退出。(利用bios中断int10h)程序思路为:显示某图形、延时、清除该图形、修改图形显示位置,如没有键按下,则重复以上过程,如有键按下则退出。实验要求试编写一程序实现以下功能:使一个特定字符从左下实验方法及原理实验方法及原理BIOS中断BIOS中断务程序实质上是微机系统中软件与硬件之间的一个可编程接口,主要用于程序软件功能与微机硬件之间。10H为BIOS服务的视频服务功能描述:为显示适配器提供I/O支持。16H为BIOS服务的键盘服务功能描述:为键盘提供I/O支持。常用的BIOS服务功能见书192页BIOS中断BIOS中断务程序实质上是微机系统02H功能: 功能描述:设置光标的位置 入口参数:AH=02H BH=显示页码

DH=行(Y坐标)

DL=列(X坐标)

出口参数:无

实例:

MOVAH,02H MOVDX,0 INT10HXY0INT10H02H功能:XY0INT10H28功能0AH

:

功能描述:在当前光标处按原有属性显示字符

入口参数:AH=0AH

AL=字符

BH=显示页码

BL=颜色(图形模式,仅适用于PCjr)

CX=重复输出字符的次数 出口参数:无

实例:

MOVAL,41H MOVAH,0AH INT10INT10H功能0AH

:INT10H29功能0FH

功能描述:读取显示器模式 入口参数:AH=0FH

出口参数:AH=屏幕字符的列数

AL=显示模式(参见功能00H中的说明) BH=页码 例如:

MOVAH,0FH INT10H ;获得当前页号

MOVAH,0 MOVAL,2 INT10H ;设置为80列25行黑白方式

INT10H功能0FHINT10H30INT16H功能01H:

功能描述:读取键盘状态

入口参数:AH=01H(检查普通键盘

) 出口参数:ZF=1,则无字符输入

ZF=0时,AH=键盘的扫描码AL=ASCII码。 例如:

MOVAH,01H INT16H

;在键盘上输入一个字符A, 那么此时AL=41H。INT16H功能01H:31实验过程、步骤及其分析实验过程、步骤及其分析程序方框图程序方框图SEGMENTSTACK DW64DUP(?)STACK ENDSCODE SEGMENT ;代码段初始化

ASSUMECS:CODE,SS:STACK;代码段与存储器的对应

MOVAX,STACKMOVSS,AXMOVSP,AXMOVECHA PROCFAR ;定义子程序 MOVAH,0FH ;调用0F号DOS命令,取当前显示方式(返回参数:页号,字符列数,

显示方式)

INT10H ;获得当前页号

MOVAH,0 ;调用0号DOS功能,设置显示方式(颜色,文本) MOVAL,2 ;设置光标位置

INT10H ;设置为80列25行行动黑白本方式

MOVCX,1 ;设置要显示的字符个数DISPLAY:MOVDX,1800H ;置光标位置(24,0)

代码分析SEGMENTSTACK代码分析34LOP1: MOVAH,2 ;设置光标位置

INT10H ; MOVAL,26H ;显示字符,此处改变就好,显示不同字符

MOVAH,0AH ;0A号DOS命令,在光标位置显示字符

INT10H CALLDELAY ;延时

MOVAH,1 ;读取键盘缓冲区字符

INT16H JNZEN ;三句判断输入任意键则结束

XORAL,AL MOVAH,0AH INT10H ;清除原图形

INCDL ;下个输出位置向右移动三位

INCDL INCDL DECDH ;下个输出位置向上移动一位

JNZLOP1 ;未到顶行则循环从左下到右上LOP1: MOVAH,2 ;设置光标位置 从左下35LOP2: MOVAH,2 ;

INT10H MOVAL,26H ;显示字符,此处改变就好,显示不同字符

MOVAH,0AH ;键盘输入到缓冲区

INT10H CALLDELAY ;延时

MOVAH,1 INT16H JNZEN ;三句判断输入任意键则结束

XORAL,AL ;AL清零

MOVAH,0AH ;键盘输入到缓冲区

INT10H ;清除原图形

DECDL ;下个输出位置向左移动三位

DECDL DECDL INCDH ;下个输出位置向下移动一位

CMPDH,18H ;DH小于18h没到底部

JNZLOP2 ;未到底行则循环

JMPDISPLAY ;无键入图形则再显示移动,从头来

RETCODE ENDS ENDMOVECHA从右上到左下LOP2: MOVAH,2 ;从右上到左下36DELAY MOVECHAENDPEN: MOVAH,4CH;带返回码结束

INT21HD

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论