IBMPC汇编语言实验:字符串搜索与匹配
需积分: 9 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汇编语言中的基本操作,为后续的系统级编程打下基础。
2011-11-14 上传
2011-12-28 上传
2012-09-25 上传
2010-03-26 上传
2023-07-26 上传
2023-07-26 上传
张凯歌
- 粉丝: 41
- 资源: 11
最新资源
- 仿7881触屏版游戏交易平台手机wap游戏网站模板.rar_网站开发模板含源代码(css+html+js+图样).zip
- sugoifit-system:这是为小型企业建立业务管理系统的重要项目
- STC12_mcu_ucos_source,遗传算法源码c语言,c语言
- exp-compression-test-experiment-iiith:该实验属于基础工程力学和材料强度实验室的全名
- 用于 MATLAB 的视频适配器设备(网络摄像头)设置:用于 MATLAB 的视频适配器设备设置-matlab开发
- SnapperML:SnapperML是用于机器学习的框架。 它具有许多功能,包括通过docker实例的可伸缩性和可再现性
- Data-Structures-and-Algorithms-Python:理解和实践python中的数据结构和算法所需的所有基本资源和模板代码,很少有小项目来演示其实际应用
- 有用的参考书
- code-learn:框架源码学习笔记
- CPU控制的独立式键盘扫描实验_单片机C语言实例(纯C语言源代码).zip
- FDNPKG:FreeDOS一个启用网络的软件包管理器-开源
- arduinolearn,ios的c语言源码,c语言
- 华硕主板Intel 网卡(I225V 网卡)固件更新 版本1.5,解决老版本固件断网问题。
- 迷失财富:通过创建一个小游戏来学习C ++:迷失财富
- webBasic
- crawler:中大型爬行动物