汇编实验之查找字符串
字符串 查找 实验 汇编
2023-09-11 14:22:53 时间
实验内容
试编写一个有主程序和子程序结构的程序模块。
主程序:要求从键盘接收一串字符并存于字节数组TABLE中,显示字符CHAR出现的次数。
子程序:在以TABLE为首地址的字节数组中查找CHAR,统计出现的次数。
实验编程提示
1、 主程序通过循环程序接收键盘输入(AH=1,INT 21H),存入TABLE,并把字符个数存入变量N中。
2、 子程序实现在TABLE中查找CHAR,并把出现的次数存入BX中。设计查找程序时应先画出程序流程图。
3、 在主程序中显示BX的值(为简化程序,可以使CHAR出现的次数不超过9)。
DATA SEGMENT
TABLE DB 100,0,100 DUP('$')
str1 DB 'enter string please:$'
str2 DB 'times the char appear:$'
DATA ENDS
STACK SEGMENT PARA STACK 'STACK'
DB 100 DUP('$')
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
LEA DX,str1
MOV AH,9
INT 21H ;输出第一句输入提示语
PUSH DX
MOV SI,0
LOP1: MOV AH,1
INT 21H
CMP AL,0DH
JZ EXIT
MOV TABLE[SI],AL
INC SI
LOOP LOP1 ;以字符为单位输入,通过循环输入组成字符串,输入回车后退出循环
EXIT: MOV TABLE[SI],'$'
CALL FUNC
LEA DX,str2 ;输出结果输出提示语
MOV AH,9
INT 21H
MOV AL,BL
ADD AL,30H ;关键步骤!0-9的ASCII码值为30-39,这里+30H之后可以直接以字符形式输出数字。
MOV DL,AL
MOV AH,2
INT 21H
MOV AH,4CH
INT 21H
FUNC PROC NEAR
PUSH SI
PUSH CX
PUSH AX
MOV AX,SI
MOV CX,SI
SUB AX,3 ;存储输入字符串长度和长度减三,因为搜索的char是四位的,所以只需要搜索到倒数第四位就可以了
LEA SI,TABLE
XOR BX,BX ;清零用来存储次数
LOP2: CMP BYTE PTR [SI],'c'
JNZ EXIT1
INC SI
CMP BYTE PTR [SI],'h'
JNZ EXIT2
INC SI
CMP BYTE PTR [SI],'a'
JNZ EXIT2
INC SI
CMP BYTE PTR [SI],'r'
JNZ EXIT2
INC BX ;统计最后出现次数结果
EXIT1: INC SI
EXIT2: CMP SI,CX ;判断遍历是否结束
LOOPNZ LOP2
POP AX
POP CX
POP SI ;释放堆栈
RET
FUNC ENDP
CODE ENDS
END START
相关文章
- C++ 在字符串中查找子字符串(最简单)
- linux sed在某些字符串的下一行插入内容?sed在下一行插入?
- C语言中的字符串
- 【算法】【字符串模块】判断字符串是否互为旋转词
- C++整數和IP字符串轉換
- 字符串匹配算法之SimHash算法
- 华为python机试题目:整数与IP地址间的转换、图片整理、字串的连接最长路径查找、提取不重复的整数、字符串合并处理、字符串最后一个单词的长度、删除字符串中出现次数最少的字符
- AC自动机:在一篇文章paper字符串中,搜索查找一批matches字符串,看看有哪些字符串能匹配上
- java求字符串型逻辑表达式的bool值
- 阿里2014校招笔试题(南大)——利用thread和sleep生成字符串的伪随机序列
- git如何查找某个包含指定字符串的commit hash值?
- 《Python Cookbook(第2版)中文版》——1.8 检查字符串中是否包含某字符集合中的字符
- MFC学习之yyyy-mm-dd hh:mm:ss 字符串转时间戳
- 1035 Password(简单题,字符串查找替换)
- python统计字符串字符出现次数
- 处理字符串
- 如何在java中判断一个字符串是否是数字
- java安全编码指南之:字符串和编码
- grep:字符串查找
- mysql 函数substring_index() 截取字符串
- PostgreSQL小知识:column "..." does not exist、字符串转整数integer、sql排查错误
- SQL字符串函数
- Java小白入门200例34之查找指定字符在字符串中的位置
- C++:查找字符串字串并替换
- Windows CMD中 find命令(字符串查找)
- 编程参考 - 如何计算字符串的哈希值
- Excel 字符串截取和查找 提取收货人姓名
- Python 从字符串中取出日期