没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
汇编语言上机实验报告
时间: 2013- 4 - 1 9,19 : 00- 21 : 30
地点: 南一楼
803
室
实验人员:
实验一
一、题目
从键盘输入两串字符分别存入 BUF1 和 BUF2 区,比较两串内容是否相等,相等显示
“MATCH !”, 不相等显示“NO MATCH !”。
二、实验要求
(1) 使用 10 号功能调用输入字符串;
(2) 使用 9 号功能调用输出提示信息。
三、寄存器分配和变量定义说明
1. 存储单元分配
2. 寄存器分配
四、流程图
开始
将 DATA 中的数据放置到 DS:数据段中
调用 10 号指令输入字符串 BUF1
并放置到数据段的 BUF1 中
输出数据段 CRLF 中的回车换行
调用 10 号指令输入字符串 BUF2
并放置到数据段的 BUF2 中
输出数据段 CRLF 中的回车换行
将输入的两个字符串的实际长度分放到
BUF1+1 和 BUF2+1 中,且将字符串 1 的长
N
Y
N
Y
五、源程序
.386
DATA SEGMENT USE16
BUF1 DB 50
DB ?
DB 50 DUP(0)
BUF2 DB 50
DB ?
DB 50 DUP(0)
CRLF DB 0DH, 0AH, '$'
SENT1 DB "MATCH!$"
SENT2 DB "NO MATCH!$"
DATA ENDS
STACK SEGMENT USE16 STACK
DB 300 DUP(0)
STACK ENDS
CODE SEGMENT USE16
ASSUME DS:DATA, SS:STACK, CS:CODE
START: MOV AX, DATA
MOV DS, AX
LEA DX, BUF1
MOV AH, 10
INT 21H
(BUF1+1)==(BUF2+
1)
(BUF1+2)==(BUF2+
2)
BUF1++,BUF2++;(CX)--
(CX)==0
输出“MATCH!”
输出“NO
MATCH!”
结束
LEA DX, CRLF
MOV AH, 9
INT 21H
LEA DX, BUF2
MOV AH, 10
INT 21H
LEA DX, CRLF
MOV AH, 9
INT 21H
MOV BL, BUF1+1
MOV BH, 0
MOV DL, BUF2+1
MOV DH, 0
MOV CX, BX
CMP DX, BX
JNZ L1
JZ L2
L1: MOV DX, OFFSET SENT2
MOV AH, 9
INT 21H
JMP EXIT
L2: MOV DL, BUF1+2
MOV BL, BUF2+2
CMP DL, BL
JNZ L1
INC BUF1
INC BUF2
DEC CX
JNZ L2
JZ L3
L3: MOV DX, OFFSET SENT1
MOV AH,9
INT 21H
JMP EXIT
EXIT: MOV AH,4CH
INT 21H
CODE ENDS
END START
六、实验步骤
1. 使用编辑程序 EDIT.EXE 录入源程序,存盘文件名为 T1.ASM。
2. 使用 MASM 6.0 汇编源文件。即 MASM T1;
3. 观察提示信息,若出错,则用编辑程序修改错误,存盘后重新汇编,直至不再报错
为止。
4. 使用连接程序 LINK.EXE 将汇编生成的 T1.OBJ 文件连接成执行文件。
即 LINK T1;
5. 若连接时报错,则依照错误信息修改源程序。之后重新汇编和连接,直至不再报错
并生成 T1.EXE 文件。
剩余10页未读,继续阅读
资源评论
桃Sir
- 粉丝: 1
- 资源: 19
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功