rattr1输出字符画右边框ENDM输出outputcharMACROcharattr
umPUSHAXMOVBH0页号MOVAH09hMOVALchar字符MOVBLattr属性MOVCX
um重复次数INT10hPOPAXENDM输出串outputstrMACROstr
umtopleftattrPUSHAXPUSHBXPUSHBPPUSHCXPUSHDXMOVAH13hLEABPstr字串地址送ES:BPMOVCX
um长度MOVDHtopMOVDLleft位置坐标MOVBH0页号
fMOVAL0写方式MOVBLattr属性INT10hPOPDXPOPCXPOPBPPOPBXPOPAXENDM绘制子菜单subme
uMACROleftme
u1
um1me
u2
um2me
u3
um3WIDTHLOCALme
udrawwi
dow70h1left5leftWIDTH画子菜单窗口wi
dowta
db0dah0c4h0bfh1leftWIDTH170h画子菜单上边筐MOVAL2me
uwi
dowla
dr0b3hALleftWIDTH170h画子菜单左右边筐INCALCMPAL5JNEme
uwi
dowta
db0c0h0c4h0d9h5leftWIDTH170h画子菜单下边筐outputstrme
u1
um12left20fh2left2显示子菜单1cha
geme
u2left180fhoutputstrme
u2
um23left270h3left2显示子菜单2cha
geme
u3left2174houtputstrme
u3
um34left270h4left2显示子菜单3cha
geme
u4left2174hENDM读取屏幕内容readscrMACROleftmemoryLOCALreadSUBAXAXMOVSIAXreadADDAHleftINCALINCSI
fMOVCHAHposALCH置光标位置MOVAH08h读光标位置字符和属性,AH字符,AL属性MOVBH0页号INT10hMOVmemorySIAL属性保存MOVmemorySI50AH字符保存MOVAXSIMOVBL10DIVBLCMPSI50JNEreadENDM写入屏幕writescrMACROleftmemoryLOCALwriteSUBAXAXMOVSIAXwriteADDAHleftINCALINCSIMOVCHAHposALCH置光标位置MOVALmemorySI属性送ALMOVAHmemorySI50字符送AHMOVDLALMOVDHAHoutputcharDLDH1输出MOVAXSIMOVBL10DIVBLCMPSI50JNEwriteENDM设置光标属性showcurMACROshow
fPUSHAXPUSHCXMOVAH1MOVCHshow光标起始行设置MOVCL0光标结束行设置INT10hPOPCXPOPAXENDM
STACKSSEGMENT此处输入堆栈段代码STACKSENDSCODESSEGMENTASSUMECSCODESDSDATASESDATASSSSTACKSSTARTMOVAXDATASMOVDSAXMOVESAX窗口预置drawwi
dow1eh002479画主窗口drawwi
dow70h00079画菜单窗口drawwi
dow70h2402479画副窗口画主窗口上边框wi
dowta
db0d5h0cdh0b8h10801ehMOVAL2draw画主窗口左右边框wi
dowla
dr0b3hAL0801ehINCALCMPAL17hJNEdraw画主窗口下边框wi
dowta
db0c0h0c4h0d9h230801eh开始主菜单绘制outputstrme
u14030Fh输出串,长度,位置,属性)outputstrme
u2401370h
fcha
geme
u013174houtputstrme
u3302370hcha
geme
u023174houtputstrme
u4403370hcha
geme
u033174houtputstrme
u5404370hcha
geme
u043174h结束主菜单绘制窗口提示信息输出outputstrmsg1683517h输出串,长度,位置,r