实验报告“南邮微机实验报告二(汇编语言)”主要关注的是使用汇编语言设计一个用户登录验证程序。该程序旨在通过控制台交互,验证用户输入的用户名和密码是否与预设值匹配,同时提供了对密码输入的隐藏处理。以下是关于汇编语言和微机原理的相关知识点:
1. **汇编语言**:
- **编程格式**:汇编语言源程序通常包含指令、伪指令、宏指令和注释。在这个实验中,源代码以`.DB`(定义字节)伪指令来定义字符串常量,`.EQU`用于符号赋值。
- **基本结构**:程序通常包括数据段(如`DATA SEGMENT`)和代码段(如`CODE SEGMENT`),并使用`ASSUME`指令指定段寄存器的关联。
- **DOS功能调用**:实验中使用了`INT 21H`中断调用来实现用户界面交互,如`MOV AH,9`和`INT 21H`组合用于显示字符串,`MOV AH,0AH`和`INT 21H`组合用于读取用户输入。
- **分支、循环、子程序**:程序中使用了`LOOP`指令进行循环,`JNZ`(跳跃若零标志未设置)进行条件分支,虽然没有明确的子程序定义,但可以理解为有逻辑分块。
2. **DOS/BIOS功能调用**:
- **INT 21H**:DOS中断调用是与DOS进行通信的主要方式,例如,功能号`9`用于显示字符串,`0AH`用于读取用户输入的字符串。
- **字符回显**:在密码输入部分,通过设置`AH`为`7`和`INT 21H`读取字符但不显示,然后显示星号`'*'`来模拟密码输入不回显。
3. **程序逻辑**:
- **用户提示**:程序首先显示用户名和密码的提示信息(`MESG1`和`MESG2`)。
- **用户名验证**:使用`MOV AH,0AH`和`INT 21H`读取用户输入的用户名,然后与预设的用户名进行逐字比较。
- **密码输入**:使用`MOV AH,7`和`INT 21H`读取用户输入的密码字符,不显示实际字符,而是显示星号。
- **密码验证**:读取的密码存储在`BUF4`中,通过`MOV CX,PSWD`和`LOOP`结构与预设密码进行比较。
- **错误处理**:如果用户名或密码不匹配,程序显示错误信息`MESG4`。
- **退出程序**:验证成功后,显示欢迎信息`MESG3`,最后使用`INT 21H`功能号`4C`退出DOS。
4. **实验环境**:
- **硬件**:实验使用微型计算机作为硬件平台。
- **软件**:操作系统为Windows,使用MASM或TASM作为汇编语言开发工具。
5. **实验要求**:
- 要求程序在用户输入用户名和密码后进行验证。
- 输入密码时不回显字符。
- 用户名和密码必须与预设值匹配才能通过验证。
- 可选地,密码可进行加密和解密,以及动画显示欢迎界面。
通过这个实验,学生可以学习到汇编语言的基本语法和DOS功能调用的应用,以及如何设计简单的用户交互程序。同时,这个实验也强调了安全性,通过不回显密码来提高用户信息的安全性。