IBMPC汇编语言实验:字符串搜索与匹配

需积分: 9 3 下载量 113 浏览量 更新于2024-12-26 收藏 53KB DOC 举报
"华北水利水电学院IBMPC汇编语言实验报告" 在本次汇编实验中,学生需要编写一个程序,该程序能接收用户输入的句子和关键词,并在句子中搜索是否包含该关键词。实验的主要目标是理解和应用汇编语言中的字符串处理指令,以及学会如何处理用户输入和输出。 1. 输入处理: - 使用共功能调用0AH来获取用户的输入。这是DOS中断调用的一部分,用于读取一行字符输入并存储在指定缓冲区中。在实验中,需要为句子和关键词分别定义缓冲区,并通过这个调用来获取用户的数据。 2. 字符串搜索: - 使用串比较指令`CMPS`进行关键词与句子的比较。`CMPS`指令会逐字节比较两个内存区域,直到遇到不匹配或者达到指定的长度(在这里是CX寄存器中的值)。 - SI和DI寄存器分别指向关键词和句子的起始位置,CX寄存器存放关键词的长度。 - 为了遍历整个句子,需要设置一个循环结构,循环次数等于(句子长度 - 关键词长度)+ 1。如果句子长度小于关键词长度,则无需进行比较,直接输出"No Match!"。 - 在比较过程中,可以使用BX寄存器保存当前正在比较的句子字段的首地址,以便于后续的位置计算。 3. 输出处理: - 当找到匹配的关键词时,使用DOS的9号功能调用来显示信息“MATCH”,并输出匹配位置。匹配位置可以通过计算关键词首地址(BX寄存器的值)与句子中匹配位置的差值加1得到,然后将结果转换为十六进制数输出。 - 如果没有找到匹配的关键词,同样调用DOS的9号功能调用来显示"No Match!"。 4. 实验过程: - 实验者提供了程序源代码,以ASM文件格式给出,程序的退出可以通过按下`CTRL+C`组合键实现,这通常触发一个INT 21H中断,结束程序执行并返回DOS。 这个实验旨在深化对汇编语言的理解,特别是字符串处理和用户交互部分,同时锻炼学生的逻辑思维和编程技巧。通过这个实验,学生能够掌握IBM PC汇编语言中的基本操作,为后续的系统级编程打下基础。
张凯歌
  • 粉丝: 41
  • 资源: 11
上传资源 快速赚钱