窗口屏幕显示程序Word格式文档下载.docx

上传人:b****7 文档编号:22164674 上传时间:2023-02-02 格式:DOCX 页数:17 大小:21.73KB
下载 相关 举报
窗口屏幕显示程序Word格式文档下载.docx_第1页
第1页 / 共17页
窗口屏幕显示程序Word格式文档下载.docx_第2页
第2页 / 共17页
窗口屏幕显示程序Word格式文档下载.docx_第3页
第3页 / 共17页
窗口屏幕显示程序Word格式文档下载.docx_第4页
第4页 / 共17页
窗口屏幕显示程序Word格式文档下载.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

窗口屏幕显示程序Word格式文档下载.docx

《窗口屏幕显示程序Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《窗口屏幕显示程序Word格式文档下载.docx(17页珍藏版)》请在冰豆网上搜索。

窗口屏幕显示程序Word格式文档下载.docx

要求:

光标所在的窗口,当按回车键后不应将光标移出窗口外。

对有潜力的同学可进一步实现当按“↓”时可将光标移位到下面窗口,清小屏后从上到下建立一个有三项内容的菜单,如选择后可有相应功能:

1.Inputinleftwindows

2.Inputinrightwindows

2.Play<

twotigers>

Yourchoise(1,2,3):

3、分析与体会

本次实验是需要掌握宏调用的格式,字符属性(特别是70H,白底黑字的运用)。

有一个难点在与左右窗口的切换。

做了很长的时间尝试,用了一个自定义的标记来完成了这个工作。

在此基础上做按(↓),实现具有选择功能的调用比前面容易。

这次实验我是在网上找的一个代码,不过他的代码是首先在右窗口输入,行数列数都不一样。

我看懂了以后,自己修了了代码。

然后完成了第三个功能。

4、代码

代码1:

层次A的要求

DATASSEGMENT

CURXDB15;

光标初始位置

CURYDB10

LXDB15;

记录左窗口当前光标位置,初始化为左窗口初始位置

LYDB10

RXDB15;

记录右窗口当前光标位置,初始化为右窗口初始位置

RYDB48

DWXDB24;

记录下窗口当前光标位置,初始化为下窗口初始位置

DWYDB16

ULROWDB0

ULCOLDB0

LRROWDB0

LRCOLDB0

WINDOWNUMDB0;

自定义窗口标记,0(默认的)左窗口,1是右窗口

DATASENDS

CLEARMACROA,B,C,D;

宏指令clear清屏

MOVAH,6

MOVAL,0;

初始化窗口,全屏幕空白

MOVCH,A;

左上角行号

MOVCL,B;

左上角列号

MOVDH,C;

右下角行号

MOVDL,D;

右下角列号

MOVBH,7;

卷入行属性

INT10H;

BIOS调用,屏幕初始化

ENDM

SCROLLMACROCONT,ULROW,ULCOL,LRROW,LRCOL;

宏指令scroll向上卷动cont行

MOVAL,CONT;

上卷行数

MOVCH,ULROW;

MOVCL,ULCOL;

MOVDH,LRROW;

MOVDL,LRCOL;

MOVBH,70H;

卷入行属性,白底黑字

BIOS调用,上卷

POSTCMACROX,Y;

宏指令postc光标定位

MOVAH,2

MOVDH,X;

MOVDL,Y;

MOVBH,0;

页号

BIOS调用,置光标位置

CODESSEGMENT

ASSUMECS:

CODES,DS:

DATAS

START:

MAINPROCFAR

PUSHDS

SUBAX,AX

PUSHAX

MOVAX,DATAS

MOVDS,AX

CLEAR0,0,24,79

SCROLL11,5,10,15,30

SCROLL11,5,48,15,68

SCROLL8,17,16,24,60

POSTCCURX,CURY

INPUT:

;

输入键盘上的字符

MOVAH,0

INT16H;

BIOS调用,从键盘读字符,ah=扫描码

CMPAH,4DH;

判断输入字符是否为→右方向键

JNZNO_RIGHT

POSTCRX,RY

MOVWINDOWNUM,1

JMPINPUT

NO_RIGHT:

CMPAH,4BH;

判断输入字符是否为←左向键

JNZNO_LEFT

POSTCLX,LY

MOVWINDOWNUM,0

NO_LEFT:

CMPAH,01;

判断输入字符是否为ESC

JNZP2

MOVAH,4CH

INT21H

在正确的窗口打印字符

P2:

MOVAH,0AH

第0页

MOVCX,1;

重复次数,

输出AL里的字符

;

在下窗口输出

POSTCDWX,DWY;

光标定位下窗口

MOVBH,0

MOVCX,1

INT10H

判断下窗口是否上卷

INCDWY

CMPDWY,60

JLEISRIGHT

SCROLL1,17,16,24,60

MOVDWY,16

ISRIGHT:

判断是否在右窗口

CMPWINDOWNUM,1

JNZDISPLEFT

DISPRIGHT:

判断右窗口是否上卷

INCRY

CMPRY,68

JLERIGHTEXIT

SCROLL1,5,48,15,68

MOVRY,48

RIGHTEXIT:

右窗口输出

DISPLEFT:

判断左窗口是否上卷

INCLY

CMPLY,30

JLELEFTEXIT

SCROLL1,5,10,15,30

MOVLY,10

LEFTEXIT:

左窗口输出

MAINENDP

CODESENDS

ENDSTART

代码2:

层次S的要求

需要注意的是,两只老虎音乐的播放需要在XP或者是64位的WIN7的电脑上才能正常运行。

STR1DB'

1.Inputinleftwindows$'

STR2DB'

2.Inputinrightwindows$'

STR3DB'

3.play<

$'

MUS_FREGDW262,262,294,330,262,262,294,330,262

DW330,349,392,330,349,392,392,440

DW392,349,330,262,392,440,392,349

DW330,262,294,196,262,294,196,262,-1

MUS_TIMEDW11DUP(25)

DW50,25,25,50,4DUP(12),25,25

DW4DUP(12),4DUP(25),50,25,25,50

CMPAH,50H

JNZNO_DOWN

JMPP00

NO_DOWN:

P00:

POSTC17,16;

LEADX,STR1

MOVAH,9

POSTC18,16

LEADX,STR2

POSTC19,16

LEADX,STR3

POSTC20,16

JMPINPUT2

INPUT2:

MOVAH,1

CMPAL,31H

JNZP03

P03:

CMPAL,32H

JNZP04

P04:

CMPAL,33H

JNZINPUT2

CALLTWOTIGERS

以下是两只老虎的程序

TWOTIGERSPROCNEAR

LEASI,MUS_FREG

LEABP,DS:

MUS_TIME

FREQ:

MOVDI,[SI]

CMPDI,-1

JEEXIT

MOVBX,DS:

[BP]

CALLGENSOUND

ADDSI,2

ADDBP,2

JMPFREQ

通用发声程序

EXIT:

RET

TWOTIGERSENDP

GENSOUNDPROCNEAR

PUSHBX

PUSHCX

PUSHDX

PUSHDI

MOVAL,0B6H

OUT43H,AL

MOVDX,12H

MOVAX,348CH

DIVDI

OUT42H,AL

MOVAL,AH

INAL,61H

MOVAH,AL

ORAL,3

OUT61H,AL

WAIT1:

MOVCX,8000

CALLWAITF

DELAY1:

DECBX

JNZWAIT1

POPDI

POPDX

POPCX

POPBX

POPAX

GENSOUNDENDP

延迟

WAITFPROCNEAR

WAITF1:

ANDAL,10H

CMPAL,AH

JEWAITF1

LOOPWAITF1

WAITFENDP

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

当前位置:首页 > 高等教育 > 其它

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

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