一个汇编小程序:用户登录验证程序

这是我们学汇编时,要求做的一个小实验,感觉挺有趣的,就想发到博客上来的。初学汇编语言的同学,也可以借鉴参考一下。

实验要求:

程序执行后,给出操作提示,请用户键入用户名和密码;用户在键入密码时,程序不回显键入字符,只有当用户键入的用户名、密码字符串和程序内定的字符串相同时,显示欢迎界面,并返回DOS。

代码里面有比较详细的注释,感兴趣的同学可以看看。

代码:

      ;FILENAME: EXERCISE2.ASM
      .486

 DATA       SEGMENT     USE16
 MESG1      DB          0DH,0AH,'Please input username:$'
 MESG2      DB          0DH,0AH,'Please input password:$'
 MESG3      DB          0DH,0AH,'LOGIN INCORRECT!$'
 USERNAME   DB          'B12040331$'
 PASSWORD   DB          '123456789$'
 FLAG       DB          ?
 BUF        DB          30
            DB          ?
            DB          30    DUP(?)
 DATA       ENDS

 CODE       SEGMENT     USE16
            ASSUME      CS:CODE,DS:DATA
 BEG:       MOV         AX,DATA
            MOV         DS,AX
            MOV         ES,AX

 AGA:       MOV         FLAG,0
            MOV         AH,9        ;显示提示信息(用户名)
            MOV         DX,OFFSET   MESG1
            INT         21H

            MOV         AH,0AH       ;输入用户名
            MOV         DX,OFFSET   BUF
            INT         21H
            MOV         BL,BUF+1
            MOV         BH,0
            MOV         SI,OFFSET   BUF+2
            MOV         BYTE  PTR   [BX+SI],'$'

            MOV         SI,OFFSET   BUF+2      ;验证用户名是否正确
            MOV         DI,OFFSET   USERNAME
            MOV         CX,9
            CLD
            REPE        CMPSB
            MOV         FLAG,CL

            MOV         AH,9          ;显示提示信息(密码)
            MOV         DX,OFFSET   MESG2
            INT         21H

            MOV         SI,OFFSET BUF+2 ;处理输入密码
INPUT:      MOV         AH,0CH          ;清除键盘缓冲区
            INT         21H
            MOV         AH,8
            INT         21H
            CMP         AL,13
            JZ          NEXT
            MOV         [SI],AL
            INC         SI
            MOV         AH,2
            MOV         DL,2AH
            INT         21H
            JMP         INPUT

 NEXT:      CMP         FLAG,0
            JNZ         LERROR
            MOV         SI,OFFSET   BUF+2      ;验证密码是否正确
            MOV         DI,OFFSET   PASSWORD
            MOV         CX,9
            CLD
            REPE        CMPSB
            JNZ         LERROR

            MOV         AH,4CH
            INT         21H

LERROR:     MOV         AH,9
            MOV         DX,OFFSET   MESG3
            INT         21H
            JMP         AGA
CODE        ENDS
            END         BEG

运行效果如下:

时间: 2024-08-10 03:49:35

一个汇编小程序:用户登录验证程序的相关文章

shell脚本的应用——用户登录验证程序

1.脚本里创建两个用户名和密码 2.让用户从屏幕输出账户和密码进行登录 3.如果账户输入错误,让他继续输入 4.账户输入正确,输入密码 5.密码正确,登录成功 6.同一个账号,密码最多错三次,三次都错将锁定账户.(此时脚本不能退出) 7.锁定账号以后,让他继续可以登录未锁账号 #!/bin/bash useradd jinchuan1 if [ $? -eq 0 ];then echo "123" | passwd --stdin jinchuan1 fi useradd jinchu

struts2 学习(三) ----- 用户登录验证

下面是struts2 的第三个程序(用户登录验证)步骤:(需要新建login.jsp,Login.java和message.jsp) 1.增加Struts框架,步骤在第一篇中. 2.新建一个login.jsp.布局如下: 3.然后新建一个class,名为Login.java,代码如下: 4.在struts.xml文件中,代码如下: 5.新建message.jsp页面,代码如下: 6.OK,运行. **************************************************

android loginDemo +WebService用户登录验证

本文是基于android4.0下的loginActivity Demo和android下的Webservice实现的.loginActivity是android4.0下的自带演示例程,他自带登录界面.用户名格式设定.输入密码和用户名格式是否正确.用户登录时间进度条等功能,用户可以在这个例程的基础上延伸出自己login用户登录程序.在这里我没有对这个程序做过多的延伸,只是增加Webservice验证用户登录的功能,使其成为一个完整的网络用户登录验证的模块程序.在这我会对这个Demo做全面的解析,使

asp.net使用ODP的防注入登录验证程序

网上有很多SQL连接方式的登录验证,但没有oracle连接方式的,我摸索了一上午写了这个可执行的函数,分享给大家 // 用户登录检查 public bool LoginCheck(string f_LoginName, string f_LoginPass) { bool result = false; // 正则表达式检查 if (Regex.IsMatch(f_LoginName,@"^[a-zA-Z0-9]{1,15}$") && Regex.IsMatch(f_

yii 用户登录验证(cwebuser) yii 用户登录 (记)

yii 的确是一个强大而臃肿的框架,简单的小项目,或者只做后台接口调用的项目,建议不要用. 今天记录一下yii使用中cwebuser(Yii::app()->user->login())登录: 1.准备工作 官方标准做法,在components里加一个UserIdentity.php文件,class UserIdentity extends CUserIdentity 继承CUserIdentity,然后在UserIdentity类里面写验证的业务过程(比如你在哪张表去查数据,取数据之类) 2

设计一个可扩展的用户登录系统

在Web系统中,用户登录是最基本的功能.如何设计一个可扩展的用户登录系统呢?本文结合实际案例对用户登录系统设计进行多维度的讲解,帮助各设计者在应用中将复杂变得简单. 来源:廖雪峰的官方网站,作者:廖雪峰. [一] 在Web系统中,用户登录是最基本的功能.要实现用户名+密码登录,很多同学的第一想法就是直接创建一个Users表,包含username和password两列,这样,就可以实现登录了: id | username | password | name等其他字段 ----+----------

linux命令:系统裁剪之三login: 用户登录验证

Linux系统裁剪笔记 1.什么裁剪? 本篇文章的主要目的是让笔者和读者更深的认识Linux系统的运作方式,大致内容就是把Linux拆开自己一个个组件来组装,然后完成一个微型的Linux系统.下面,让我们来实现吧..写的不好的地方请指教. 2.原理 大家都知道,操作系统的启动流程是(主要是Linux):POST->BIOS->MBR-kernel-->initrd-->sbin/init, POST,BIOS都不是我们管的,所以这里我们从MBR开始,Linux的系统引导先主要是用的

ASP.NET MVC3 实现用户登录验证

原文:ASP.NET MVC3 实现用户登录验证 自定义一个授权筛选器类,继承于AuthorizeAttribute: using System; using System.Web; using System.Web.Mvc; namespace MvcApplication1 { public class DWAuthorizeAttribute : AuthorizeAttribute { /// <summary> /// 判断用户是否登录 /// </summary> //

简明Python教程(四)———用户登录验证

例子: 实现目标,用Python编写用户登录验证脚本. 知识点: 1.while和if控制流 2.运算表达式 验证过程: 脚本: #!/usr/bin/env python#filename : User login authentication#import sysname = 'Tiger'passwd = '123456'counter = 0times = 3while True:                         #-----------无限循环 username = r