- 24
- 0
- 约7.5千字
- 约 13页
- 2017-04-08 发布于贵州
- 举报
华北电力大学汇编实验报告华北电力大学汇编实验报告
华北电力大学
实 验 报 告
|
|
实验名称 汇编语言程序设计实验
课程名称 IBM-PC汇编语言程序设计
|
|
专业班级:计科1103 学生姓名:李庆贺
学 号: 201109010307 成 绩:
指导教师: 王保义 实验日期:1月
实验一 用表格形式显示字符
实验要求
按15*16列的表格形式显示ASCⅡ码为10H—100H的所有字符,即以行为主的顺序及ASCⅡ码递增的次序依次显示对应的字符。每16个字符为一行,每行中的相邻两个字符之间用空白符隔开。
设计说明
显示每个字符可使用功能号为02的显示输出功能调用:
Mov ah,02h
Mov dl,输出字符的ASCⅡ码
Int 21h
将dl初始化为10H,然后使用其加1以取得下一个字符的ASCⅡ码。
显示空白符是,用其ASCⅡ码置0入dl寄存器。每行结束时,用回车和换行来结束本行并开始下一行。
由于逐个显示相继的ASCⅡ码字符是,需要不断修改dl寄存器的内容,而显示空白、回车、换行也需要使用dl寄存器,为此可使用堆栈保存dx。
实验程序及调试结果
prognam segment
main proc far
assume cs:prognam
start:
mov ah, 02h
mov dl, 10h ;设置初始输出为ASCII的10h
mov bl, 15 ;输出显示为15行
e:
mov cx, 16;设置循环次数,16,表示输出显示为16列
l:
int 21h ;显示输出
push dx ;推入堆栈
mov ah, 02h
mov dl, 0
int 21h
mov ah, 02h
mov dl, 0
int 21h ;显示空白符
pop dx ;将栈顶元素推出
inc dl ;设置下一个元素
loop l ;循环输出每行的16个ASCII元素
push dx ;将下一行的首元素推入堆栈
mov ah, 02h
mov dl, 0dh
int 21h
mov ah, 02h
mov dl, 0ah
int 21h ;输出换行
pop dx ;将栈顶元素推出
dec bl
cmp bl, 0 ;比较确定是否已经输出15行元素
jne e ;若还未完成输出,则跳转至e,继续进行下一行元素的输出
je exit ;否则退出程序
exit:
mov ax, 4c00h
int 21h
main endp
prognam 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:
设计说明
程序由三部分组成:
输入关键字和一个句子,分别存入相应的缓冲区中。
在句子中查找关键字
输出信息。用功能调用09h分‘找到’和‘未找到两种情况分别显示不同的信息。在“找到”时,显示关键字在字符串中位置。
使用说明
根据提示输入关键字和句子,按回车键结束输入。程序将显示字符串中是否含有关键字,有则提示‘match’并显示关键字位置,无则提示‘no match’。
实验程序
datarea segment
;输入数据段
keyadr label byte
keymax db 20
keyact db ?
keys
原创力文档

文档评论(0)