南邮——微型计算机原理与接口技术——实验3.18

实验题目:

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

(1)字符串比较

1、定义附加段:

CODE SEGMENT 
     ASSUME CS:CODE,DS:DATA,ES:DATA
     
BEG:
     MOV AX,DATA
     MOV DS,AX
     MOV ES,AX  ;AX传给ES

否则,由于比较字符串所用的 REPE CMPSB  ;比较的字符串,目标字符串需要在附加段,源字符串在数据段,故如果未定义,会导致比较失败,REPE CMPSB说明可以看这里

结果如此:(syj为正确用户名)

(2)说明下标移动的方向,比较的次数

 CLD
     MOV CX,3    ;比较4次

CLD说明可查看这个

(3)赋值

MOV DI,OFFSET BUF2
     MOV SI,OFFSET USER

(2)0AH,0DH

0AH表示换行,0DH表示回车(只是回到该行的头部,不换行)

如果代码如下:

BEG1:
		 
		 MOV AH,2	
     MOV DL,0DH
     INT 21H
     
     MOV AH,09H
	   MOV DX,OFFSET NUM1
	   INT 21H
	   MOV CX,3
		MOV BX,OFFSET YHM1

则如果输出错则不会出现Wrong username,因为虽然调用了9号功能键,让Wrong username显示出来,但调用9号功能输出'Please enter your username:$'之前由于上面的代码,使光标回到Wrong username行头,再调用输出,就掩盖了原本的Wrong username

(3)代码

DATA SEGMENT 
NUM1 DB 'Please enter your username:$'
MIMA1 DB 4 DUP(?)
MIMA DB '0716'
NUM2 DB 'Wrong Answer!$'
NUM3 DB 'Welcome!$'
YHM DB 'syj'
NUM4 DB 'Wrong Username$'
NUM5 DB 'Please enter your password:$'
YHM1 DB 3 DUP(?)
DATA ENDS
CODE SEGMENT
  ASSUME CS:CODE,DS:DATA,ES:DATA
BEG:
MOV AX,DATA
MOV DS,AX
MOV ES,AX
MOV AX,0003H ;创建窗口
INT 10H
BEG1:
		MOV AH,2	
     MOV DL,0AH
     INT 21H
	   MOV AH,09H
	   MOV DX,OFFSET NUM1
	   INT 21H
	   MOV CX,3
		MOV BX,OFFSET YHM1
BEG2:
			MOV AH,01H
			INT 21H
			MOV [BX],AL
			INC BX
			LOOP BEG2

			MOV DI,OFFSET YHM1;源段在数据段
			MOV SI,OFFSET YHM;目标端在附加段
			CLD;正向增加下标
			MOV CX,3    ;比较3次
			REPE CMPSB  ;字符串比较,包括CX-1
			JZ BEG3   ;ZF=1,表示一样,跳到
			MOV AH,2
			MOV DL,0AH  ;换行
			INT 21H
			
			MOV AH,09H
      MOV DX,OFFSET NUM4
      INT 21H
      JMP BEG1  ;再输入一次用户名
BEG3:
		 MOV AH,2	
     MOV DL,0AH
     INT 21H
	   MOV AH,09H
	   MOV DX,OFFSET NUM5
	   INT 21H
     MOV BX,OFFSET MIMA1
     MOV CX,4
BEG4:
	     MOV AH,07H  ;不回显字符
	     INT 21H     ;光标下移一行
	     MOV [BX],AL ;传给BX
	     MOV AH,02H  ;显示字符
	     MOV DL,'*'
	     INT 21H
	     INC BX      ;BX后移一位,一共移6次
	     LOOP BEG4
     
     MOV DI,OFFSET MIMA1
     MOV SI,OFFSET MIMA
     CLD
     MOV CX,4    ;比较6次
     REPE CMPSB  ;字符串比较
     JZ RIGHT    ;ZF=1,表示一样,跳到RIGHT
     MOV AH,2
     MOV DL,0AH
     INT 21H
     
     MOV AH,09H
     MOV DX,OFFSET NUM2
     INT 21H
     JMP BEG3

RIGHT:
	 MOV AH,2
     MOV DL,0AH
     INT 21H
     MOV AH,09H
     MOV DX,OFFSET NUM3
     INT 21H

EXIT:
     MOV AH,4CH
     INT 21H  ;返回 DOS
     
CODE ENDS
     END BEG



结果:

参考链接:

https://blog.csdn.net/fulinus/article/details/8277442

https://zhidao.baidu.com/question/55775159.html

https://blog.csdn.net/Wonz5130/article/details/80863047

 

  • 10
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 南京邮电大学的微型计算机原理接口技术实验是一门有关计算机系统和接口技术实验课程,旨在帮助学生了解计算机系统的基本原理接口技术的实际应用。实验课程通过实际的实验操作来加深学生对理论知识的理解,从而培养学生的实际操作能力。 ### 回答2: 南京邮电大学微型计算机原理接口技术实验计算机科学与技术专业的核心课程之一,旨在让学生深入了解微型计算机原理接口技术及其应用。 该实验可以分为理论部分和实践部分。在理论部分,学生将学习微型计算机的基本结构、原理及其硬件组成,以及微型计算机系统的系统软件、应用软件、输入出接口、总线及其标准等内容。通过理论学习,学生可全面地了解微型计算机系统的运作、数据传、控制状态等知识。 在实践部分,学生将完成几个小型计算机系统的设计、调试、测试等工作。具体来说,实验将涉及到微型计算机开发软件技术工具的使用,包括汇编语言编译器、C语言编译器、模拟器等。学生还需要完成各种实验设计与实现,例如定器应用实验、LED数码管实验、LCD显示屏实验、PS2键盘输入实验、ADC采集电压实验、音频实验等。 通过该实验,学生将深度了解微型计算机的应用领域及其发展方向,能够熟练地处理各种微型计算机系统的硬件与软件设计、开发与应用。此外,该实验还是培养学生分析问题、解决问题、工程实践能力和动手实践操作技能的重要环节。 在现代化信息技术的推动下,微型计算机已经成为各大产业的必备组成部分。学生通过南京邮电大学微型计算机原理接口技术实验的深入学习与实践,将会为未来的职业发展打下坚实的基础。 ### 回答3: 南京邮电大学微型计算机原理接口技术实验,是一门集计算机原理接口技术于一体的课程。在这门课程中,学生们将会学习到下面这些知识点。 首先,学生们将会学习到微处理器的工作原理及其体系结构。微处理器是计算机的核心部分,学生们需要了解微处理器的结构与工作原理,才能够更好地理解整个计算机系统的运行过程。 其次,学生们将会学习到存储器的种类、存储器的结构与存储器的使用方法。存储器是计算机中用于存储数据与指令的设备,学生们需要了解各种存储器的特点与使用方法,才能够更好地设计计算机系统。 再次,学生们将会学习到计算机系统的输入接口技术程序的编程方法。计算机系统能够与外部设备进行交互,就是通过输入出接口实现的。学生们需要学习输入接口技术,才能够将计算机系统应用于各种实际场景。 最后,学生们将会进行微型计算机系统的设计与实现实验。学生们将会运用上面学到的知识,设计一个简单的微型计算机系统,然后实现并进行测试。通过这个实验,学生们能够加深对计算机原理接口技术的理解,并掌握计算机设计与实现的相关技能。 总之,南京邮电大学微型计算机原理接口技术实验,是一门非常重要的课程。通过这门课程的学习,学生们可以全面掌握微型计算机系统的原理与应用技术,为以后的计算机相关领域的学习与工作奠定坚实的基础。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值