南邮汇编实验二

实验原理及内容:

程序执行后,给出操作提示,请用户输入用户名和密码;用户在输入密码时,程序不回显输入字符,只有当用户输入的用户名、密码字符串和程序内定的字符串相同时。才显示欢迎界面,并返回DOS。界面颜色自定(彩色或黑白)。

程序代码:

DATA SEGMENT
MESG1 DB 'B20030105	$'
MESG2 DB 'password:$'
PWD   DB 30 DUP(?)
PWDLENGTH DB 0

U     DB 'B21xxxxxx'
ULENGTH EQU $-U

P     DB '11111'
MLENGTH EQU $-P

WELCOME DB 'true$'
ERROR   DB 'fail$'
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA
BEG:  MOV AX,DATA
      MOV DS,AX
      MOV DI,3

NEXT0:
      CMP DI,0
      JZ ERR

	  MOV PWDLENGTH,0
	  MOV AH,09H
      MOV DX,OFFSET MESG1   ;显示学号
      INT 21H

      MOV AH,02H
      MOV DL,0AH        ;换行
      INT 21H
      
      MOV AH,09H
      MOV DX,OFFSET MESG2   ;显示密码
      INT 21H
      
      MOV CX,MLENGTH
      MOV SI,OFFSET PWD

NEXT1:
      MOV AH,07H       ;无回显从键盘读入一个字符
      INT 21H
      CMP AL,0DH
      JE  NEXT2            ;等于回车符号则跳转IND

      MOV [SI],AL
      MOV AH,02H        ;显示字符
      MOV DX,'*'
      INT 21H
      INC PWDLENGTH     ;输入的密码长度+1
      INC SI            ;密码源变址寄存器的地址+1
      JMP NEXT1

NEXT2:  
      MOV AH,02H
      MOV DL,0AH        ;换行
      INT 21H

      DEC DI

      MOV BX,OFFSET P
      MOV SI,OFFSET PWD    
      MOV CL,PWDLENGTH
      MOV CH,0
	  CMP CX,MLENGTH      ;比较密码长度
	  JNZ NEXT0

	  MOV CX,MLENGTH

NEXT3:
	  MOV AL,[BX]
      CMP [SI],AL
      JNZ NEXT0
      INC SI
      INC BX
      LOOP NEXT3
      JMP WEL
      
WEL:  MOV AH,09H
      MOV DX,OFFSET WELCOME
      INT 21H
      JMP EXIT

ERR:  MOV AH,09H
      MOV DX,OFFSET ERROR
      INT 21H
      JMP EXIT

EXIT: MOV AH,4CH
      INT 21H

CODE ENDS
      END BEG

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值