光标式菜单完整.docx

上传人:b****7 文档编号:26136453 上传时间:2023-06-17 格式:DOCX 页数:65 大小:24.89KB
下载 相关 举报
光标式菜单完整.docx_第1页
第1页 / 共65页
光标式菜单完整.docx_第2页
第2页 / 共65页
光标式菜单完整.docx_第3页
第3页 / 共65页
光标式菜单完整.docx_第4页
第4页 / 共65页
光标式菜单完整.docx_第5页
第5页 / 共65页
点击查看更多>>
下载资源
资源描述

光标式菜单完整.docx

《光标式菜单完整.docx》由会员分享,可在线阅读,更多相关《光标式菜单完整.docx(65页珍藏版)》请在冰豆网上搜索。

光标式菜单完整.docx

光标式菜单完整

共8个文件

1.批处理文件:

可连接多个EXE文件。

汇编菜单程序时可使用……

复制粘贴此文件到txt文本,再把txt后缀改为.bat即可使用。

其它文件需要用emu8086软件生成.exe

EXE文件名需要与批处理文件中调用的文件名一致。

ECHOOFF

:

BEGIN

CAIDAN.EXE

:

BE

IFERRORLEVEL8GOTOF8

IFERRORLEVEL7GOTOF7

IFERRORLEVEL6GOTOF6

IFERRORLEVEL5GOTOF5

IFERRORLEVEL4GOTOF4

IFERRORLEVEL3GOTOF3

IFERRORLEVEL2GOTOF2

TIME1.exe

PAUSE

GOTOBEGIN

:

F2

MUSIC.EXE

PAUSE

GOTOBEGIN

:

F3

CAIDAN2.EXE

GOTOBE

:

F5

SHUNXIN.EXE

GOTOF3

:

F6

GULINLIN.EXE

GOTOF3

:

F7

MORE.EXE

GOTOF3

:

F8

GOTOBEGIN

:

F4

ECHOON

2主菜单文件:

;CAIDAN.EXE

DISPMACROY0Y,XX,VAR,LENGTH,NN0

LOCALNEXT,QQW,QE

PUSHAX

PUSHBX

PUSHCX

PUSHDX

PUSHBP

PUSHSI

MOVAX,1301H

MOVBX,COLOR

MOVCX,LENGTH

MOVDH,Y0Y

MOVDL,XX

CMPVAR,'9'

JZQQW

MOVBP,OFFSETVAR

JMPQE

QQW:

MOVBP,ADDR

QE:

MOVSI,NN0

CMPSI,0

JZNEXT

ADDBP,L

SUBBP,COUNT

NEXT:

INT10H

POPSI

POPBP

POPDX

POPCX

POPBX

POPAX

ENDM

;................................

DATASEGMENT

L0DB'MENU'

L1DB'================'

L2DB'||||'

L3DB'||1TIME||'

L4DB'||2MUSIC||'

L5DB'||3BUILT||'

L6DB'||RETURN||'

L7DB'||||'

L8DB'////////\\\\\\\\'

LEQU$-L8

XEQU(80-L)/2

YEQU7

YYDB0

CCDB'9'

ADDRDW?

NNDW1

COLORDW0FH

COUNTDW0

LORGDBX+8

TABDW?

L3,L4,L5,L6

DATAENDS

;.................................

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,ES:

DATA

BEG:

MOVAX,DATA

MOVDS,AX

MOVES,AX

MOVAX,3

INT10H

MOVAH,1

MOVCX,2000H;设置光标属性

INT10H

;MOVCX,1DH

;初始化菜单

LAST:

INCCOUNT

DECLORG

DISPY+0,LORG,L0,COUNT,0

DISPY+0,40,L0,COUNT,1

DISPY+1,LORG,L1,COUNT,0

DISPY+1,40,L1,COUNT,1

DISPY+2,LORG,L2,COUNT,0

DISPY+2,40,L2,COUNT,1

DISPY+3,LORG,L3,COUNT,0

DISPY+3,40,L3,COUNT,1

DISPY+4,LORG,L4,COUNT,0

DISPY+4,40,L4,COUNT,1

DISPY+5,LORG,L5,COUNT,0

DISPY+5,40,L5,COUNT,1

DISPY+6,LORG,L6,COUNT,0

DISPY+6,40,L6,COUNT,1

DISPY+7,LORG,L7,COUNT,0

DISPY+7,40,L7,COUNT,1

DISPY+8,LORG,L8,COUNT,0

DISPY+8,40,L8,COUNT,1

;MOVCX,07FH

CALLWAITP

CALLWAITP

CALLWAITP

CMPCOUNT,L/2

JNELAST

;光标式选择

MOVCOLOR,51H

MOVNN,1

CALLJISUAN

DISPYY,X+4,CC,8,0;色带覆盖第1选项

SCAN:

MOVAH,1

INT16H

JZSCAN

MOVAH,0

INT16H

CMPAH,80

JEDOWN

CMPAH,77

JEDOWN

CMPAH,72

JEUP

CMPAH,75

JEUP

CMPAL,0DH

JEEXIT

JMPSCAN

DOWN:

CALLJISUAN

MOVCOLOR,0FH

DISPYY,X+4,CC,8,0

CMPNN,4

JEED

INCNN

JMPE1

ED:

MOVNN,1

E1:

CALLJISUAN

MOVCOLOR,51H

DISPYY,X+4,CC,8,0

JMPSCAN

UP:

CALLJISUAN

MOVCOLOR,0FH

DISPYY,X+4,CC,8,0

CMPNN,1

JEEU

DECNN

JMPE2

EU:

MOVNN,4

E2:

CALLJISUAN

MOVCOLOR,51H

DISPYY,X+4,CC,8,0

JMPSCAN

EXIT:

MOVAL,BYTEPTRNN

MOVAH,4CH

INT21H

MOVAH,4CH

INT21H

;计算DISP参数

JISUANPROC

MOVDI,NN

ADDDI,DI

MOVAX,TAB[DI]

ADDAX,4

MOVADDR,AX

MOVAL,BYTEPTRNN

ADDAL,9

MOVYY,AL

RET

JISUANENDP

WAITPPROC

PUSHAX

PUSHCX

MOVCX,63144

XORAX,AX

LOOP1:

INAL,61H

ANDAL,10H

CMPAL,AH

JELOOP1

MOVAH,AL

LOOPLOOP1

POPCX

POPAX

RET

WAITPENDP

CODEENDS

ENDBEG

3.

;CAIDAN2.EXE

DISPMACROY0Y,XX,VAR,LENGTH,NN0

LOCALNEXT,QQW,QE

PUSHAX

PUSHBX

PUSHCX

PUSHDX

PUSHBP

PUSHSI

MOVAX,1301H

MOVBX,COLOR

MOVCX,LENGTH

MOVDH,Y0Y

MOVDL,XX

CMPVAR,'9'

JZQQW

MOVBP,OFFSETVAR

JMPQE

QQW:

MOVBP,ADDR

QE:

MOVSI,NN0

CMPSI,0

JZNEXT

ADDBP,L

SUBBP,COUNT

NEXT:

INT10H

POPSI

POPBP

POPDX

POPCX

POPBX

POPAX

ENDM

;................................

DATASEGMENT

L0DB'DESIGNERS'

L1DB'================'

L2DB'||||||||||||||||'

L3DB'1SHUNXIN'

L4DB'|2LINLIN|'

L5DB'3MORE'

L6DB'|RETURN|'

L7DB'________________'

L8DB''

LEQU$-L8

XEQU(80-L)/2

TTEQU24

YDB25

YYDB0

CCDB'9'

ADDRDW?

NNDW1

COLORDW0FH

COUNTDW0

LORGDBX+8

TABDW?

L3,L4,L5,L6

DATAENDS

;.................................

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,ES:

DATA

BEG:

MOVAX,DATA

MOVDS,AX

MOVES,AX

MOVAX,3

INT10H

MOVAH,1

MOVCX,2000H;设置光标属性

INT10H

MOVCX,1DH

;初始化菜单

LAST:

DECY

DISPY,X,L0,L,0

CMPY,TT

JNCT0

INCY

DISPY,X,L1,L,0

CMPY,TT

JNCT1

INCY

DISPY,X,L2,L,0

CMPY,TT

JNCT2

INCY

DISPY,X,L3,L,0

CMPY,TT

JNCT3

INCY

DISPY,X,L4,L,0

CMPY,TT

JNCT4

INCY

DISPY,X,L5,L,0

CMPY,TT

JNCT5

INCY

DISPY,X,L6,L,0

CMPY,TT

JNCT6

INCY

DISPY,X,L7,L,0

CMPY,TT

JNCT7

INCY

DISPY,X,L8,L,0

DECY

T7:

DECY

T6:

DECY

T5:

DECY

T4:

DECY

T3:

DECY

T2:

DECY

T1:

DECY

T0:

;MOVCX,07FH

CALLWAITP

CALLWAITP

CALLWAITP

CMPY,7

JNELAST

;光标式选择

MOVCOLOR,51H

MOVNN,1

CALLJISUAN

DISPYY,X+4,CC,9,0;色带覆盖第1选项

SCAN:

MOVAH,1

INT16H

JZSCAN

MOVAH,0

INT16H

CMPAH,80

JEDOWN

CMPAH,77

JEDOWN

CMPAH,72

JEUP

CMPAH,75

JEUP

CMPAL,0DH

JEEXIT

JMPSCAN

DOWN:

CALLJISUAN

MOVCOLOR,0FH

DISPYY,X+4,CC,9,0

CMPNN,4

JEED

INCNN

JMPE1

ED:

MOVNN,1

E1:

CALLJISUAN

MOVCOLOR,51H

DISPYY,X+4,CC,9,0

JMPSCAN

UP:

CALLJISUAN

MOVCOLOR,0FH

DISPYY,X+4,CC,9,0

CMPNN,1

JEEU

DECNN

JMPE2

EU:

MOVNN,4

E2:

CALLJISUAN

MOVCOLOR,51H

DISPYY,X+4,CC,9,0

JMPSCAN

EXIT:

ADDNN,4

MOVAL,BYTEPTRNN

MOVAH,4CH

INT21H

MOVAH,4CH

INT21H

;计算DISP参数

JISUANPROC

MOVDI,NN

ADDDI,DI

MOVAX,TAB[DI]

ADDAX,4

MOVADDR,AX

MOVAL,BYTEPTRNN

ADDAL,9

MOVYY,AL

RET

JISUANENDP

WAITPPROC

PUSHAX

PUSHCX

MOVCX,63144

XORAX,AX

LOOP1:

INAL,61H

ANDAL,10H

CMPAL,AH

JELOOP1

MOVAH,AL

LOOPLOOP1

POPCX

POPAX

RET

WAITPENDP

CODEENDS

ENDBEG

4;TIME1.EXE

SHOWYEARMACROCHAR

PUSHAX

PUSHSI

PUSHCX

PUSHDX

PUSHBX

PUSHDI

MOVAX,CHAR

MOVSI,OFFSETDIVISORS

MOVDI,OFFSETRESULTS

MOVCX,4

AA:

MOVDX,0

DIVWORDPTR[SI];除法指令的被除数是隐含操作数,此处为dx:

ax,商ax,余数dx

ADDAL,48;商加上48即可得到相应数字的ASCII码

MOVBYTEPTR[DI],AL

INCDI

ADDSI,2

MOVAX,DX

LOOPAA

MOVCX,4

MOVDX,OFFSETRESULTS;待显字符串地址送入DX

MOVAH,9;调用DOS功能的09H子功能显示字符串,字符串以‘$’结束

INT21H

POPDI

POPBX

POPDX

POPCX

POPSI

POPAX

ENDM

DISPMACROCHAR;显示字符

PUSHAX

PUSHDX

MOVDL,CHAR

MOVAH,2

INT21H

POPDX

POPAX

ENDM

GETNUMMACROCHAR;显示数字

PUSHAX

PUSHDX

PUSHCX

MOVAL,CHAR

AAM;BCD码化ASCII码AL前四位bcd码转化为ASCII码后存入AH,后四位存入AL

MOVDH,AL;保存AL数据

MOVDL,AH

ORDL,30H;数转化为字

MOVAH,2;输出字符

INT21H

MOVDL,DH

ORDL,30H

MOVAH,2

INT21H

POPCX

POPDX

POPAX

ENDM

GETWEEKMACROCHAR;显示星期

PUSHAX

PUSHDX

PUSHSI

PUSHCX

LEASI,D_TAB

MOVAL,CHAR

XORAH,AH

CMPAX,0

JESU

MOVCX,AX

LOOP1:

INCSI

INCSI

LOOPLOOP1

SU:

MOVDX,[SI]

MOVAH,9

INT21H

POPCX

POPSI

POPDX

POPAX

ENDM

GETMONTHMACROCHAR;显示月分

PUSHAX

PUSHDX

PUSHSI

PUSHCX

LEASI,M_TAB

MOVAL,CHAR

DECAL

XORAH,AH

MOVCX,AX

LOOP2:

INCSI

INCSI

LOOPLOOP2

MOVDX,[SI]

MOVAH,9

INT21H

POPCX

POPSI

POPDX

POPAX

ENDM

DATASSEGMENT

DIVISORSDW1000,100,10,1

RESULTSDB0,0,0,0,"$"

BUFDB'A$'

BUF1DB'YUE$'

D_TABDWSUN,MON,TUE,WED,THU,FRI,SAT

M_TABDWJAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DCE,TIM

SUNDB'Sunday$'

MONDB'Monday$'

TUEDB'Tuesday$'

WEDDB'Wednesday$'

THUDB'Thursday$'

FRIDB'Friday$'

SATDB'Saturday$'

JANDB'January$'

FEBDB'February$'

MARDB'March$'

APRDB'April$'

MAYDB'May$'

JUNDB'June$'

JULDB'July$'

AUGDB'August$'

SEPDB'September$'

OCTDB'October$'

NOVDB'November$'

DCEDB'December$'

TIMDB'.M.$'

XINDB'BEIJINGSHIJIAN$'

XIN1DB'***************************************$'

XIN2DB'DESIGNERS:

CaoShunxin,GuLinlin',0AH,0DH,0AH,0DH,0AH,0DH,27DUP(''),'PRESSANYKEYTOEXIT$'

DATASENDS

STACKSSEGMENT

;此处输入堆栈段代码

STACKSENDS

CODESSEGMENT

ASSUMECS:

CODES,DS:

DATAS,SS:

STACKS

START:

MOVAX,DATAS

MOVDS,AX

MOVAX,STACKS

MOVSS,AX

CALLCLP

MOVAH,1

MOVCX,2003H;设置光标属性

INT10H

MOVAH,2;置光标位置

MOVBH,0;页号

MOVDH,7;行

MOVDL,33;列

INT10H

LEADX,XIN

MOVAH,9

INT21H

MOVAH,2;置光标位置

MOVBH,0;页号

MOVDH,8;行

MOVDL,20;列

INT10H

LEADX,XIN1

MOVAH,9

INT21H

MOVAH,2;置光标位置

MOVBH,0;页号

MOVDH,12;行

MOVDL,20;列

INT10H

LEADX,XIN1

MOVAH,9

INT21H

MOVAH,2;置光标位置

MOVBH,0;页号

MOVDH,13;行

MOVDL,23;列

INT10H

LEADX,XIN2

MOVAH,9

INT21H

LLL:

MOVAH,2;置光标位置

MOVBH,0;页号

MOVDH,10;行

MOVDL,21;列

INT10H

MOVAH,2CH;取时间,CH:

CL=时:

分;DH:

DL=秒:

1/1000秒

INT21H

GETNUMCH

DISP3AH

GETNUMCL

DISP3AH

GETNUMDH

DISP00H

CMPCH,12

JAP

DISP41H

JMPA

P:

DISP50H

A:

MOVDX,M_TAB+24

MOVAH,9

INT21H

MOVAH,2AH;取日期CX=年DH:

DL=月:

INT21H

GETWEEKAL

DISP2CH

GETMONTHDH

DISP00H

GETNUMDL

DISP2CH;','

SHOWYEARCX

MOVAH,06H

MOVDL,0FFH

INT21H

JELLL

CALLCLP

MOVAH,4CH

INT21H

CLPPROC

PUSHAX

PUSHBX

PUSHCX

PUSHDX

MOVBH,0;欲读取显示页

MOVAH,8;读取字属性值

INT10H

MOVBL,BH

MOVBH,AH;属性存入BH

MOVCX,0;左上角

MOVDX,194FH;右下角

MOVAX,600H;向上移动的列数存入AL(0表示矩形框内所有列)

INT10H;清屏

MOVAH,2;光标置于左上角

MOVBH,0

MOVDX,0

INT10H

POPDX

POPCX

POPBX

POPAX

RET

CLPENDP

CODESENDS

ENDSTART

5

;MUSIC.EXE

DATASEGMENT

INFO1DB0AH,0DH,'Welcomeyoutocomehere!

'

DB0AH,0DH,'Thisisamusicprogram!

'

DB0AH,0DH,'Pleaseselect!

$'

INFO4DB0AH,0DH,'Inputerror!

$'

INFO5DB0AH,0DH,'Pleaseinputagains!

$'

MUSLISTDB0AH,0DH,'================'

DB0AH,0DH,'|1MUSIC1|'

DB0AH,0DH,'|2MUSIC2|'

DB0AH,

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

当前位置:首页 > 法律文书 > 调解书

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

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