华北电力大学汇编实验报告2解析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
华北电力大学
实验报告|
|
实验名称汇编语言程序设计实验
课程名称IBM-PC汇编语言程序设计
|
|
专业班级:学生姓名:
学号:成绩:
指导教师:实验日期
实验一用表格形式显示字符
一、实验要求
按15*16列的表格形式显示ASCⅡ码为10H—100H的所有字符,即以行为主的顺序及ASCⅡ码递增的次序依次显示对应的字符。每16个字符为一行,每行中的相邻两个字符之间用空白符隔开。
二、设计说明
(1)显示每个字符可使用功能号为02的显示输出功能调用:
Mov ah,02h
Mov dl,输出字符的ASCⅡ码
Int 21h
将dl初始化为10H,然后使用其加1以取得下一个字符的ASCⅡ码。
(2)显示空白符是,用其ASCⅡ码置0入dl寄存器。每行结束时,用回车和换行来结束本行并开始下一行。
(3)由于逐个显示相继的ASCⅡ码字符是,需要不断修改dl寄存器的内容,而显示空白、回车、换行也需要使用dl寄存器,为此可使用堆栈保存dx。
三、实验程序及调试结果
CODES SEGMENT
;**********************************************
main proc far
ASSUME CS:CODES
START:
push ds
sub ax,ax
push ax
mov di,15
mov dl,10h
loo:
mov cx,16
next:
mov ah,02h
int 21h
inc dl
push dx
mov dl,0
mov ah,02h
int 21h
pop dx
loop next
push dx
mov dl,0dh
int 21h
mov dl,0ah
mov ah,02h
int 21h
pop dx
dec di
jne loo
je exit
exit: ret
main endp
CODES ENDS
END START
实验二查找匹配字符串
一、实验要求
程序接受用户键入的一个关键字以及一个句子,如果句子中不包含关键字则显示“No match!”;如果句子中包含关键字则显示“match!”,且把该字在句子中的位置用十六进制数显示出来。要求程序的执行过程如下:
Enter keyword:abc
Enter sentence:we are studying abc
Match at location:11H of the sentence
Enter sentence:xyz
No match!
Enter sentence:
二、设计说明
程序由三部分组成:
(1)输入关键字和一个句子,分别存入相应的缓冲区中。
(2)在句子中查找关键字
(3)输出信息。用功能调用09h分‘找到’和‘未找到两种情况分别显示不同的信息。
在“找到”时,显示关键字在字符串中位置。
三、使用说明
根据提示输入关键字和句子,按回车键结束输入。程序将显示字符串中是否含有关键字,有则提示‘match’并显示关键字位置,无则提示‘no match’。
四、实验程序
DA TAS SEGMENT para 'data'
mess1 db 'match!',13,10,'$'
mess2 db 'no match!',13,10,'$'
mess3 db 'enter keyword:','$'
mess4 db 'enter sentence:','$'
mess5 db 'match at location:','$'
mess6 db ' H of the sentence','$'
stoknim label byte
max db 10
act db ?
stokn db 10 dup(?)
sentence label byte
ma db 100
ac db ?
sto db 100 dup(?)
DA TAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
;*****************************************
CODES SEGMENT para 'code'
ASSUME CS:CODES,DS:DA TAS,es:datas
main proc far
START:
push ds
sub ax,ax
push ax
MOV AX,DATAS
MOV DS,AX
mov es,ax
;*****************输入关键字和一个句子***********
k:
lea dx,mess3
mov ah,09
int 21h ; 显示字符串‘enter word’
lea dx,stoknim
mov ah,0ah