80x86 汇编语言:查找字符串
来源:互联网 发布:做淘宝客的步骤有哪些 编辑:程序博客网 时间:2024/06/10 16:39
;输入两个字符串。str1 长度,要比 str2 更长一些。
;在 str1 中查找,是否存在 str2。
;是则返回 str2 首字符在 str1 中的位置(从0开始)。
;否则返回 -1。
;题目链接:http://zhidao.baidu.com/question/1447835264679045420
;做而论道编程如下: (2015-04-08 11:16 提问者采纳)
DATAS SEGMENT
STRING3 DB 'Please input string1(string1>string2):', 13, 10, '$'
STRING4 DB 'Please input string2(string1>string2):', 13, 10, '$'
CR_LF DB 13, 10, '$'
STF1 DB 10, ?, 10 DUP(?)
STF2 DB 10, ?, 10 DUP(?)
CHA DW ?
DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES, ES:DATAS, DS:DATAS
START:
MOV AX, DATAS
MOV DS, AX
MOV ES, AX
LEA DX, STRING3
MOV AH, 9
INT 21H
LEA DX, STF1
MOV AH, 0AH
INT 21H ;123ASDF45
LEA DX, CR_LF
MOV AH, 9
INT 21H
LEA DX, STRING4
MOV AH, 9
INT 21H
LEA DX, STF2
MOV AH, 0AH
INT 21H ;ASDF
LEA DX, CR_LF
MOV AH, 9
INT 21H
;-----------------------下面是比较查找
MOV AL, STF1 + 1
SUB AL, STF2 + 1
MOV AH, 0
MOV CHA, AX ;长度之差=5
CLD
MOV BX, 0 ;BX=0~4, 这是 str2 首字符在 str1 中的位置(从0开始)
LP1:
LEA SI, STF1 + 2 ;源串
ADD SI, BX ;从源串+0~4开始找
LEA DI, STF2 + 2 ;另一个串
MOV CL, STF2 + 1 ;比较4个字符
MOV CH, 0
REPZ CMPSB ;串比较
JZ YES ;找到则转移
INC BX ;起始位置,向下移
CMP BX, CHA
JNZ LP1 ;不到5次,则继续找
;-----------------------下面是显示结果
NO:
MOV AH, 2
MOV DL, '-'
INT 21H
MOV DL, '1'
INT 21H
JMP EXIT
YES:
MOV AH, 2
MOV DL, BL ;0~4
ADD DL, '0'
INT 21H
EXIT:
MOV AH, 4CH
INT 21H
CODES ENDS
END START
提问者评价:希望您继续帮助我一下!!!
- 80x86 汇编语言:查找字符串
- 80x86汇编语言编程:查找字符串中的最大、最小值
- 80x86汇编语言:字符串移动
- 80x86汇编语言:输入字符串、转换、输出
- 80x86 汇编语言:键入字符串,然后存盘
- 【80X86汇编语言学习】【字符串处理】字符串操作指令REP
- 【80X86汇编语言学习】【字符串处理】字符串操作举例strcat
- 80x86 汇编语言编程:输入字符串,排序输出
- 用80x86汇编语言:在字符串中删除一个字符
- 80x86 汇编语言:输入字符串、显示其中数字
- 80x86 汇编语言:实现两个字符串内容交换
- 80x86 汇编语言基础教程
- 汇编语言字符串比较与查找
- 80x86汇编语言程序设计P50
- 80x86 汇编语言编程:求和
- 80x86汇编语言:福到了
- 80x86汇编语言:分类统计
- 80x86 汇编语言编程:EXE2COM
- C 程序:凑成平方数
- 80x86 汇编语言编程:移动平均处理
- Jmeter特殊情况一:登录请求中密码加密的情况
- 80x86 汇编语言编程:有符号数输出
- C语言:写一个约瑟夫环的程序
- 80x86 汇编语言:查找字符串
- 设计模式之策略模式
- 百度空间迁入新家百度云
- 王爽汇编语言,外中断例题,照抄都出错
- 80x86 汇编语言:统计数据的个数
- VB 6.0 精确到毫秒的计时器 demo
- 51汇编语言编程,共五个小题
- 80x86 汇编语言编程:EXE2COM
- 80x86 汇编语言编程:数据排序与显示