资源描述:
《通信字识别例子》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、.486dispmacroy,x,length,color,var;显示彩色文本movax,1301h;调用Bios屏显13号子功能movbl,color;设置文本显示的背景色和前景色movbh,0;设置显示页号movcx,length;限定显示长度movdh,y;行号movdl,x;列号movbp,offsetvar;待显示字符串的地址int10hendmset_pointermacrovar;宏定义:光标定位movah,02hmovbh,0movdh,11movdl,varint10hendmdatasegmentuse16L1db201,19dup(
2、205),187;边框数据存放区L2db186,'password:',10dup(''),186L3db200,19dup(205),188countdb35;光标初始位置,35列keydb'hellox';默认的密码key_lengthequ$-key;密码的长度mesg1db'passwordpassed!';密码通过提示数据存储mesg2db'passwordincorrect!!Retry?yorn:';密码错误提示数据存储buffdb8dup('?');用户键入数据存放的区域dataendscodesegmentuse16assumecs:co
3、de,ds:databeg:movax,datamovds,axmoves,ax;----clearscreen;清屏显示movah,00hmoval,3int10h;----dispaythemenu;显示边框,调用disp宏disp10,25,21,2eh,L1disp11,25,21,2eh,L2disp12,25,21,2eh,L3;---setthepointer;预置光标位置set_pointer35movcount,35movbp,offsetbuffhere:cmpcount,42jbtypein;密码长度小于8位,正常读入字符,并且光标记
4、录增1,Buff指针增1set_pointer42;--------------------------密码满8位时的输入------------------movah,07h;无回显读取键盘输入int21h;---backspace_checkcmpal,08hjebackspace_check;---enter_checkcmpal,0dhjeenter_check;---AL放入buff中movbyteptrds:[bp],al;---display'*'movah,02hmovDL,'*'int21hjmphere;----------------
5、-------------------typein:movah,07hint21h;---backspace_checkcmpal,08hjebackspace_check;---enter_checkcmpal,0dhjeenter_check;---AL放入buff中movbyteptrds:[bp],alincbpinccount;---display'*'movah,02hmovDL,'*'int21hjmphere;---backspace_checkbackspace_check:deccountcmpcount,35jaebsset_poin
6、ter35movah,02hmovDL,''int21hset_pointer35jmpherebs:decbpset_pointercountmovah,02hmovDL,''int21hset_pointercountjmphere;---比较enter_check:movsi,offsetkeymovdi,offsetbuffmovcx,key_lengthcldrepecmpsbjzpw_correctmovah,00hmoval,3int10hdisp8,20,35,2eh,mesg2movah,01hint21hcmpal,'y'jebegjm
7、pexitpw_correct:movah,00hmoval,3int10hdisp8,20,16,2eh,mesg1jmpexitexit:movah,4cHint21Hcodeendsendbeg