汇编语言——比较两个字符串STRING1和STRING2所含字符是否完全相同,若相同则显示MATCH, 不相同则显示NO MATCH

本文主要是介绍汇编语言——比较两个字符串STRING1和STRING2所含字符是否完全相同,若相同则显示MATCH, 不相同则显示NO MATCH,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

CMPS 串比较指令:

CMPS SRC, DST
CMPSB (字节)
CMPSW (字)

执行操作:

((SI)) - ((DI))

根据比较结果置条件标志位:相等 ZF=1;不等 ZF=0

字节操作:(SI)←(SI)±1, (DI)←(DI)±1;

字操作: (SI)←(SI)±2, (DI)←(DI)±2

在这里插入图片描述

;比较两个字符串STRING1和STRING2所含字符是否完全相同
;若相同则显示‘MATCH’,若不相同则显示‘NO MATCH’
data segmentstring1 db "Hello World!"count1 dw $-string1string2 db "Hello World!"count2 dw $-string2match db "MATCH",0ah,0dh,'$'nomatch db "NO MATCH",0ah,0dh,'$'
data ends
stack segment stackdw 100 dup (?)top label word
stack ends
code segmentassume cs:code,ss:stack,ds:data
main proc farmov ax,stackmov ss,axlea sp,topmov ax,datamov ds,axmov es,ax;判断串长,不相等直接跳转到Nmov ax,count1mov bx,count2cmp ax,bxjne N;串长相等,执行串比较操作lea si,string1lea di,string2mov cx,count1repe cmpsb			;串比较指令,(si)(di)二者相等继续往下比较,不相等退出jnz N				;ZF=0jcxz Y				;ZF=0并且cx=0,即比较完了整个串;相同显示MATCH
Y:lea dx,matchmov ah,9int 21hjmp exit;不相同显示NO MATCH
N:lea dx,nomatchmov ah,9int 21h	exit:mov ah,4chint 21h
main endp
code endsend main

在这里插入图片描述

这篇关于汇编语言——比较两个字符串STRING1和STRING2所含字符是否完全相同,若相同则显示MATCH, 不相同则显示NO MATCH的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/958800

相关文章

前端JS必用工具【js-tool-big-box】学习,检测当前是否为手机端浏览器,检测某元素是否处于当前可视范围内

这一小节,js-tool-big-box工具库又迎来了两个非常实用功能成员,分别是检测当前浏览器是否为手机端浏览器,还有检测某元素当前是否处于可视范围内。 1 安装引入 通过npm安装,执行以下命令 npm i js-tool-big-box 这两个功能,工具库提供了一个叫browserBox的对象,所以代码中需要引入这个对象 import { browserBox } from

几个人脸库对于面部动作识别的功能比较

经粗略研究,insightface只能识别面部特征点的位置,根据这些位置不能直接推出一个人是否在睡觉。 OpenFace 是一个高级的面部行为分析工具,它能够识别和分析多种面部动作单位(Facial Action Coding System, FACS),这些动作单位是根据面部肌肉活动定义的。每个动作单位(AU)代表了面部表情中的一个具体部分的变化。下面是一些动作单位的含义,以及它们在面部表达中

【坑】如何让块元素像内联元素那样并排显示

我们知道在添加块元素(例如div等)会在块元素后面自动的添加一个换行,使得后面的内容显示在这个块元素的后面,可如果我们需要将几个块元素并列的时候(相互参差的div)可怎么办呢? 例如: <style type="text/css">#one {background-color:red;width:100px;height:100px;}#two {background-color:g

C语言例题45、一个偶数总能表示为两个素数之和

注意:**1和0既非素数也非合数** #include <stdio.h>int isPrime(int n) {//判断n是否为质数if (n < 2) {return 0;}for (int i = 2; i < n; i++) {if (n % i == 0) {return 0;}}return 1;}void main() {int x;printf("请输入一个大于2的偶数:");

男士内裤有什么牌子比较好?公认男士内裤口碑最好的品牌

现在市面上关于男士内裤有着三角平角两种设计,而在材质方面还有莫代尔、纯棉、冰丝等等各种不同的材质分类,另外还有各种不同的男士内裤品牌。 所以大家在选男士内裤都觉得十分麻烦而且耗费时间,那么今天我就来给大家总结分析一下男士内裤应该怎么选,另外也盘点一下近年比较适合大家选择的五款男士内裤! 以下是我曾测评过的众多男士内裤: 关于男士内裤是否要定期更换? 很多男性对自己穿的内裤不会过于在

代码随想录算法训练营第五十五天| 583. 两个字符串的删除操作 ,72. 编辑距离

目录 题目链接: 583. 两个字符串的删除操作 思路 代码 题目链接: 72. 编辑距离 思路 代码 总结 题目链接:583. 两个字符串的删除操作 思路         ①dp数组,dp[i][j]表示下标以i-1结尾的word1和下标以j-1结尾的word2若要相等,所需删除元素的最小次数         ②递归公式,当word1[i-1] == word2

Android知识点——Log日志输出显示不完整以及GsonFormat

先扯两句 这部分内容原本是想写成一个附录的,不过细想起来,这两部分内容在开发中还是很好用的偷懒手段,这里也就单独开了一篇博客。 还是先上我的Git库,然后开始正文。 MyBaseApplication (https://github.com/BanShouWeng/MyBaseApplication) 并给大家展示个神器,叫Android知识点——目录,好了,闲言少叙,下面进入正题。 正文

C语言实现:判断输入字符串中英文字母,空格或回车,数字字符,其他字符的个数

简单查询判断就可以 #include<stdio.h>int main(void){int y=0,k=0,s=0,q=0, i;char ch;printf("输入15个字符:");for(i=1;i<=15;i++){ch=getchar();if('a'<=ch&&ch<='z'||'A'<=ch&&ch<='Z')y++;else if(ch==' '||ch=='\n')k++;e

C语言实现:判断是否为素数

输入一个整数,判断其是否为素数. 定义:素数(质数):除了1和它本身以外不再有其他的因数。 判断整数N是否为素数,这里采用规则是:判断2到N/2之间是否有其因数。 #include <stdio.h>int main(void){int i,m;printf("Enter a number(number>1):");scanf("%d",&m);for(i=2;i<=m/2;i++)if

springboot3.0+继续使用springboot2.0配置会显示 `无法自动装配,找不到对应的Bean`解决方法

在 Spring Boot 3.0 中,Spring 团队对自动配置机制进行了重大变更,特别是 spring.factories 文件。spring.factories 文件已被 META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports 文件所取代。在springboot3.0+继续使用spri