南京邮电大学汇编语言程序设计实验二(用户登录验证程序的设计)

这篇具有很好参考价值的文章主要介绍了南京邮电大学汇编语言程序设计实验二(用户登录验证程序的设计)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、实验目的和要求

1.掌握循环程序的编写以及结束循环的方法。
2.掌握DOS、BIOS功能调用的使用方法。

二、实验内容

用户登录验证程序的实现
程序执行后,给出提示操作,请用户键入用户名和密码;用户在键入密码时,程序不回显键入字符;只有当用户键入的用户名,密码字符串和程序内定的字符串相同时,显示欢迎界面并返回DOS;否则给出提示信息,用户名或密码错误,再次输入。界面颜色自定(彩色或黑白)

三、实验环境(实验设备)

XP /WIN7+MASM/TASM/轻松汇编/未来汇编

四、实验代码


      .586
DATA  		SEGMENT 	USE16
	MESG1 		DB 		'INPUT YOUR USERNAME: $'		;提示字符
	MESG2  		DB 		'INPUT YOUR PASSWORD: $' 
	ERROR  		DB 	'-----USERNAME OR PASSWORD ERROR!----$'
	WELCOME 	DB 	'---------------WELCOME!-------------$'		
	
	
	_USERNAME  	DB 		'root'
	_PASSWORD  	DB 		'root'
	_ULEN  		EQU 	$-_USERNAME         ; 用户名长度
	_PLEN  		EQU 	$-_PASSWORD       	; 密码长度
	
	USERNAME  	DB		15   				; 输入的用户名
	PASSWORD  	DB 		15 DUP(?)          	; 输入的密码
	PLEN  		DB 		0                  	; 输入密码的长度
	
	
DATA  		ENDS


CODE  		SEGMENT 	USE16
      	ASSUME 	CS: CODE, DS: DATA
BEG:  	MOV 	AX, 	DATA
      	MOV 	DS, 	AX
NEXT0:  MOV 	AH, 	9    			;09H功能号,显示DS:DL内字符串
      	MOV 	DX, 	OFFSET MESG1
      	INT 	21H
      	MOV 	AH, 	0AH   			;键盘输入字符串并显示,存在U缓冲区
		MOV 	DX, 	OFFSET USERNAME  		;用户输入字符串起始偏移位置放入DX缓冲区
      	INT 	21H
      	MOV 	AH, 	2
      	MOV 	DL, 	0AH            	;换行字符
      	INT 	21H
      	MOV 	AH, 	9             	;显示提示字符串
      	MOV 	DX, 	OFFSET MESG2
      	INT 	21H
      	MOV 	CX, 	_PLEN
      	MOV 	SI, 	OFFSET PASSWORD  	;把输入密码起始偏移地址放入SI
NEXT1:  MOV 	AH, 	07H         	;无回显从键盘读入一个字符
      	INT 	21H
      	CMP 	AL, 	0DH          	;判断输入是否结束
      	JE 	IND
      	MOV 	[SI], 	AL       		;将输入密码字符放入数据区:PWD
      	MOV 	AH, 2          			;每输入一位密码显示一个‘*’
      	MOV 	DL, '*'
      	INT 	21H
      	INC 	PLEN
      	INC 	SI
      	JMP 	NEXT1
IND:  	MOV 	AH, 	2             	;输出换行
      	MOV 	DL, 	0AH
      	INT 	21H
     	MOV 	BX, 	OFFSET USERNAME+1    	;[BX]=实际输入字符数
      	MOV 	AL, 	[BX]
      	CMP 	AL, 	_ULEN          	;比较用户名长度    
      	MOV   BX, 	OFFSET _USERNAME
      	MOV 	SI, 	OFFSET _USERNAME+2
      	MOV 	CX, 	_ULEN          	;设置循环次数
NEXT2:  MOV 	AL, 	[BX]
      	CMP 	[SI], 	AL          	;循环比较用户名是否正确
      	INC   	SI
      	INC 	BX
      	LOOP 	NEXT2
      	MOV 	BX, 	OFFSET _PASSWORD
      	MOV 	SI, 	OFFSET PASSWORD
      	MOV 	CL, 	PLEN
      	MOV 	CH, 	0
      	CMP 	CX, 	_PLEN          	;比较密码长度
      	JNZ 	ERR
      	MOV 	CX, 	_PLEN
NEXT3:  MOV 	AL, 	[BX]
      	CMP 	[SI], 	AL          	;循环比较密码字符是否正确
      	JNZ 	ERR
      	INC 	SI
      	INC 	BX
      	LOOP 	NEXT3
      	JMP 	WEL
ERR:  	MOV 	AH, 	9
      	MOV 	DX, 	OFFSET ERROR 	;输出用户名或密码错误提示
      	INT 	21H
      	MOV 	AH, 	2
      	MOV 	DL, 	0AH
		INT 	21H
      	JMP 	NEXT0
WEL:  	MOV 	AH, 	9             	;输出登录成功的提示
      	MOV 	DX, 	OFFSET WELCOME
      	INT 	21H
      	JMP 	EXIT
EXIT:  	MOV 	AH, 	4CH
      	INT 	21H
CODE  	ENDS
      	END BEG

五、实验过程描述与结果分析

1、程序执行后,给出提示操作,请用户键入用户名和密码。
2、用户在键入密码时,程序不回显键入字符;只有当用户键入的用户名,密码字符串和程序内定的字符串相同时,显示欢迎界面并返回DOS;
3、否则给出提示信息,用户名或密码错误,再次输入。

六、实验小结(包括问题和解决方法、心得体会、意见与建议等)

1、注意子功能调用方法的使用
2、变量的命名格式要统一简洁
3、程序计数器CX的使用文章来源地址https://www.toymoban.com/news/detail-417043.html

到了这里,关于南京邮电大学汇编语言程序设计实验二(用户登录验证程序的设计)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 嵌入式:ARM汇编语言程序设计基础教程

    ① 合理地分配存储器资源,将前述的目标系统‘数据结构模型’表示到各存储器单元。 ② CPU寄存器数量有限,在程序中,大多数操作都要使用寄存器;并且有的操作使用特定的寄存器(如堆栈操作使用SP/R13等),程序中要合理分配各寄存器的用途。 用计算机语言,对数据结

    2023年04月23日
    浏览(59)
  • 实验一8086计CPU系统寻址方式和汇编语言程序设计

    实验一8086计CPU系统寻址方式和汇编语言程序设 一、实验目的 (1)掌握8086CPU系统的逻辑地址和寻址方式。 (2)掌握8086CPU系统中机器数的表示方式。 (3)掌握指令的机器码表示方法。 (4)掌握堆栈的概念和操作过程。 (5)掌握集成开发环境下的程序设计和调试方法。 (6)掌握汇编语言实

    2023年04月22日
    浏览(24)
  • 汇编语言实验8:BIOS/DOS功能调用与宏指令程序设计

    掌握汇编语言程序设计的基本方法和技能 掌握汇编语言源程序的编辑汇编连接和执行的完整过程 通过上机操作理解宏定义、宏调用、宏展开的概念,熟练运用宏功能编写程序 掌握BIOS/DOS基础功能的实现调用方法 理解常用的DOS功能调用的基本使用,能熟练运用1号,2号,9号,

    2024年02月03日
    浏览(38)
  • 南京邮电大学数据库实验一(SQL语言)

    (1) 通过上机实践,熟悉Oracle的SQL * Plus环境及使用方法 (2) 掌握SQL语言,能熟练运用SQL语言进行数据定义和数据操纵 (3) 加深对关系数据模型的数据结构和约束的理解 硬件:微型计算机 软件:Windows 操作系统、ORACLE 10G 实验原理基于第二、三、五章的相关内容。 实验内容如下:

    2024年04月27日
    浏览(16)
  • 南京邮电大学数学实验最新版

    1.1(1) 1.1(2) 1.2 1.3 1.4 1.5 1.6 1.7(1) f.m g.m main 1.7(2) f1.m g1.m main 1.8(1) 1.8(2) 1.9 1.10 1.11 1.12(1) 1.12(2) fun.m Main.m 2.1(1) dd.m main 2.2 2.3 Martin.m 2.4 2.5(1) 2.5(2) 3.1 结果 3.2 结果 3.3(1) 3.3(3) 3.4 4.1 4.3 4.4 4.5(1) 4.5(2) 4.6 4.7 4.8 4.9 实验一 //散点图 //模型建立 //数据预测

    2024年02月11日
    浏览(21)
  • 南京邮电大学数据库第一次课后作业

    1.单选题 (5分) ( B )是存储在计算机内有结构的数据的集合。 (A)数据库系统 (B)数据库 (C)数据库管理系统 (D)数据结构 2.单选题 (5分) 数据库的特点之一是数据的共享,严格的讲,这里的数据共享是指( D )。 (A)同—个应用中的多个程序共享一个数据集合 (B)多个用户

    2024年02月01日
    浏览(27)
  • 2023南京邮电大学通达学院《数学实验》MATLAB实验答案

    四月维夏,六月徂暑。 勤将励勉,勿望再晨。 ——赠nmy 南京邮电大学通达学院《数学实验》MATLAB实验答案 答案更新时间:2023.04.28,修改了4.2的存疑部分。已更新完成,如无错误不在更新 为了方便核算,我在代码中单独将 m 定义为自变量运算或者直接以m=117代入,作业中可以

    2023年04月20日
    浏览(69)
  • 南京邮电大学电工电子(数电)实验报告——组合逻辑电路 & 时序逻辑电路

    5、使用ISE软件完成组合逻辑设计的输入并仿真 6、掌握Testbech中组合逻辑测试文件的写法 7、下载并测试实现的逻辑功能 ①4选1数据选择器 RTL代码 仿真测试模块代码 ②3-8译码器 RTL代码 仿真测试模块代码 ③8-3优先编码器 RTL代码 仿真测试模块代码 ④十六进制七段LED显示译码器

    2024年02月04日
    浏览(28)
  • 南京邮电大学电工电子(数电)实验报告——计数器 & 移位寄存器

    1、掌握计数器的逻辑功能及应用方法 2、掌握任意进制计数器的设计方法 3、掌握数字电路多个输出波形相位关系的正确测试方法 4、了解非均匀周期信号波形的测试方法 设计一个分频比N=5的整数分频电路,观察并记录时钟脉冲和输出波形。 选用cb4cle二进制计数器模块,采用

    2024年02月03日
    浏览(39)
  • 南京邮电大学Web技术双语实验一(客户端HTML脚本编写)

    实验目的: (1) 通过上机实践,熟悉 HTML 和 JavaScript 脚本实现技术。 (2) 加深对 Web 编程的认识 实验要求: 1 编写个人主页,要求包含如下信息。 (1) 标题“欢迎访问×××的主页” (2) 个人简介,包含照片。 (3) 个人经历简介,以有序列表形式显示。 (4) 个人最

    2024年02月05日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包