80x86汇编编程:在输入的字符串中查找关键字
来源:互联网 发布:java 163邮箱发送邮件 编辑:程序博客网 时间:2024/05/21 17:09
编写程序:
接收键入的一个句子以及一个关键字;
如果句子中不包含关键字则显示“No match !”;
如果句子包含关键字则显示“Match !”,且把该字在句子中的位置用十六进制数显示出来。
满意回答:
;================================
DATAS SEGMENT
T1 DB 10, 13, 'Input String: $'
T2 DB 10, 13, 'Input a Char: $'
RESULT1 DB 10, 13, 'MATCH !', 13, 10, '$'
RESULT2 DB 10, 13, 'NO MATCH !', 13, 10, '$'
KEY DB 100 DUP(?)
SEN DB ?
DATAS ENDS
;================================
CODES SEGMENT
ASSUME CS:CODES, DS:DATAS
START:
MOV AX, DATAS
MOV DS, AX
;--------------------------------
MOV DX, OFFSET T1 ;Input String:
MOV AH, 09H
INT 21H
XOR BX, BX
L5:
MOV AH, 01H
INT 21H
MOV KEY[BX], AL ;保存输入的字符
INC BX
CMP AL, 13 ;是“回车”?
JNZ L5 ;不是,就继续输入。超过100个就会出错,但愿不会输入这么多吧 !
MOV DX, OFFSET T2 ;Input a Char:
MOV AH, 09H
INT 21H
MOV AH, 01H
INT 21H
MOV SEN, AL ;保存关键字
;-----------------------------
L1:
MOV AL, KEY[BX - 1]
CMP AL, SEN
JZ L3 ;找到了转移.
DEC BX
JNZ L1
;-----------------------------
L2: ;没有找到.
MOV DX, OFFSET RESULT2
MOV AH, 09H
INT 21H
JMP L4
L3:
MOV DX, OFFSET RESULT1 ;MATCH !
MOV AH, 09H
INT 21H
;---------------------下面是显示位置
MOV AL, BL
MOV AH, 0
MOV BL, 16
DIV BL
MOV DX, AX
ADD DL, 30H
CMP DL, 3AH
JB L7
ADD DL, 7
L7:
MOV AH, 2
INT 21H
MOV DL, DH
ADD DL, 30H
CMP DL, 3AH
JB L8
ADD DL, 7
L8:
MOV AH, 2
INT 21H
MOV DL, 'H'
MOV AH, 2
INT 21H
;-----------------------------
L4:
MOV AH, 4CH
INT 21H
CODES ENDS
END START
;================================
如果含有多个关键字,本程序只是显示最后输入的关键字位置。
运行结果如下:
c:\masm510>SEN
Input String: SASFRGERTEGDFBDBD
Input a Char: D
MATCH !
11H
c:\masm510>SEN
Input String: EWEWE
Input a Char: M
NO MATCH !
;================================
回答者: 做而论道 | 2012-4-13 09:55
原题网址:http://zhidao.baidu.com/question/409735230.html
;================================
- 80x86汇编编程:在输入的字符串中查找关键字
- 80x86汇编编程:显示数据区字符串中第一个空格的位置
- Python在字符串中查找关键字
- 80x86汇编语言编程:查找字符串中的最大、最小值
- 80x86 汇编语言编程:输入字符串,排序输出
- 在x86汇编中使用C语言的全局变量
- 在输入的字符串中查找是否存在要查找的字符。
- 80x86 汇编语言:查找字符串
- 80x86的汇编器
- 80x86汇编编程两题
- Linux Bash:在用户输入目录中查找含有某字符串的文件,打印行号
- 80x86汇编语言编程:输入格雷码、输出对应的十进制数字
- Linux中x86的内联汇编
- Linux 中 x86 的内联汇编
- Linux 中 x86 的内联汇编
- Linux 中 x86 的内联汇编
- Linux 中 x86 的内联汇编
- Linux 中 x86 的内联汇编
- 彩虹文字--RainbowText
- C语言编程,对字符串进行处理
- 在WPF中使用PlaneProjection模拟动态3D效果
- PC 机中的 CMOS
- 80x86汇编编程:实现十进制或十六进制向二进制的转换
- 80x86汇编编程:在输入的字符串中查找关键字
- 80x86汇编编程:键入两个8进制数字,相加后以16进制输出
- C语言编程:扑克牌魔术
- 溢出的概念和判断方法
- 用 LCD1602 显示的时钟
- C语言编程:统计输入的各字符的个数
- 8086汇编语言编程--大小写转换、统计个数、显示时还要求发音
- 单片机流水灯闪烁问题
- “在场人数”的统计