汇编语言字符串比较与查找
来源:互联网 发布:数控机床的编程 编辑:程序博客网 时间:2024/06/05 03:59
答案仅供参考,大家还是自己写比较好。
(汇编语言实现)用字符串处理指令编制程序,处理字符串的比较和查找,显示结果。
要求:
(1)字符串的比较函数中,一个字符串在数据段定义,另一个字符串在程序执行时从键盘输入,必须定义键盘缓冲区。指出不相等的位置。
(2)在字符串中查找某个字符,并指出找到的位置。
第一问:
DATA SEGMENT BUFF DB 255 DUP('?');定义一个缓冲区,缓冲区长度比需要比较的字符串长即可,缓冲区的?需要加单引号DATA ENDSEXT SEGMENT MESS DB 'www.omegaxyz.com$';注意最后一定要加$EXT ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:EXTSTART:MOV AX,DATAMOV DS,AXMOV AX,EXTMOV ES,AX;套路LEA DX,BUFFMOV AH,0AHINT 21H;使用Dos 0AH命令向缓冲区输入字符串MOV CL,BUFF+1;注意Dos 0AH命令实际输入的字符数量保存在内存DX+1中(见附录),即BUFF+1,因此把BUFF+1的值给CLLEA SI,BUFF+2;需要使用CMPSB命令,从BUFF+2开始是真正输入的值赋值给SILEA DI,MESS;被比较的原始串CLDMOV BL,'0';为了显示串开始不同的地方,设置BL的初始值,由于显示的是ascii码所代表的值,因此把‘0’赋值给BLXY:INC BL CMPSBLOOPZ XY;循环一次BL+1JZ YESMOV DL,BLJMP xxxxxxxxxxYES:MOV DL,'Y'xxxxxxxxxx:MOV AH,2 INT 21H;显示MOV AH,4CHINT 21HCODE ENDSEND START
第二问:
EXT SEGMENT MESS DB 'www.omegaxyz.com$'EXT ENDS;注意要使用SCASB命令必须将数据保存在ES中CODE SEGMENTASSUME CS:CODE,ES:EXTSTART:MOV AX,EXTMOV ES,AXMOV AH,01HINT 21H;调用Dos 01H命令,从键盘中输入1个字符并保存在AL中MOV CX,17LEA DI,MESSCLDMOV BL,'0';为了寻找所求字符位置,设置一个寄存器用来保存XY:INC BL SCASBLOOPNZ XY;LOOPNZ CX不等于0,ZF=0即不相等时循环JZ YESMOV DL,'N';N说明没有查找到JMP DISPYES:MOV DL,BLDISP:MOV AH,2 INT 21HMOV AH,4CHINT 21HCODE ENDSEND START
结果截图请访问我的网站:omegaxyz.com
阅读全文
0 0
- 汇编语言字符串比较与查找
- 80x86 汇编语言:查找字符串
- MIPS:字符串查找比较
- PHP字符串比较和查找
- AT&T与Intel汇编语言的比较
- AT&T与Intel汇编语言的比较
- AT&T与Intel汇编语言的比较
- AT&T与Intel汇编语言的比较
- 80x86汇编语言编程:查找字符串中的最大、最小值
- 实训汇编语言设计——比较两个字符串
- 用汇编语言写一个程序,比较两个字符串是否相同。
- 字符串查找与过滤
- 字符串与大数比较
- 索引搜索与字符串查找的比较(Lucene学习笔记之一)
- WindowsBatch与LinuxShell比较[batch常见命令和字符串查找命令find/findstr]
- VC 中字符串比较和查找
- php 字符串 函数 查找 比较 截取
- VC 中字符串比较和查找
- Ecilpse快捷键
- 安卓Notification和NotificationManager浅析
- PAT乙级1024. 科学计数法 (20)
- DOM操作-获取节点-创建节点
- 美团点评2017秋招笔试真题-运维工程师B
- 汇编语言字符串比较与查找
- 控制出兵波数及数量(协程)
- zookpeer 伪集群搭建及 C API使用
- 【POJ】1222
- POJ -2236 Wireless Network
- Windows服务器安装Memcache缓存服务及PHP扩展
- 深入理解Java:注解(Annotation)自定义注解入门
- 简单几步,提升.Net Core的开发效率
- div css用float时引起背景不正常显示的解决办法