汇编实验2.2 查找匹配字符串(附有详细注释和源代码和相关知识)

本文是一个汇编语言实验,旨在查找字符串中的匹配关键字。实验要求用户输入关键字和句子,若句子包含关键字,则显示匹配位置。文章介绍了相关知识,包括汇编指令的使用,并附带详细注释的源代码。程序通过比较输入的句子和关键字来判断是否匹配,并能显示匹配位置的16进制值。
摘要由CSDN通过智能技术生成

实验2.2 查找匹配字符串
实验要求:
程序接收用户键入的一个关键字以及一个句子。如果句子中不包含关键字则显示’No match!’;如果句子中包含关键字则显示‘Match’,且把该字在句子中的位置用十六进制数显示出来。

相关知识

1.为什么不能说直接 MOV DS,1000H 而是要通过AX设置首地址?
答:不可以,因为不允许将立即数直接传送到段寄存器,这是mov命令本身的限制。

2.汇编语言中,CBW指令有何功能?
答:CBW 字节转换为字指令执行的操作:AL的内容扩展到AH,形成AX中的字。
AL符号扩展为AX。在8086中CBW指令将AL的最高有效位D7扩展至AH,即:如果AL的最高有效位是0,则AH = 00,AL的最高有效位为1,则AH = FFH。AL不变。(即将AL的符号位移至AH)
CBW属符号扩展指令,它可以把8位扩展到16位,扩展前后两数的真值不变,主要用于数据类型不同时用符号扩展指令可以使得数据类型相同

3.汇编中的JS什么意思
JS(jump if sign),汇编语言中的条件转移指令。结果为负则转移
(https://zhidao.baidu.com/question/207589465.html 中有完整的各种转移指令解释)

4.汇编语言中的 offset什么意思
答:(1、OFFSET是将数值回送变量或标号的偏移地址值.
2.LEA是将数值回送变量或标号的有效地址值.
3.SEG, 汇编程序将回送变量或标号的段地址值.
4、LEA BX,LIST5、MOV BX,OFFSET LIST6、可以看出,LEA和OFFSET这两条指令在功能上是相同的,BX寄存器都可得到符号地址LIST的值,而且此时MOV指令的执行速度会比LEA指令更快。但是,OFFSET只能与简单的符号地址相连,而不能和诸如LIST[SI]或[SI]等复杂操作数相连。因此,LEA指令在取得访问变量的工具方面是很有用的。)

5.SHL是逻辑左移,右边的位补零,ROL是循环左移,左边移出的位补到右边

附带注释的源码

(为方便,注释用了//,其实用分号才对,最下面有没有注释的清洁的源代码)
;··································································································

实验2.2
;PROGRAM TITLE GOES HERE–search
;*******************************
datarea segment
mess1 db ‘Enter keyword:’,’ ′ m e s s 2 d b ′ E n t e r S e n t e n c e : ′ , ′ ' mess2 db 'Enter Sentence:',' mess2dbEnterSentence:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值