微机原理编程问题 比较两个串是否相同,相同显示“MATCH”不相同显示“NO MATCH” 不知道哪里错了啊

DATASEGMENTSTRING1DB'ADCD';字符串1CONT1EQU($-STRING1)STRING2DB'ABCD';字符串2CONT2EQU($-STRI... DATA SEGMENT
STRING1 DB 'ADCD' ;字符串1
CONT1 EQU ($-STRING1)
STRING2 DB 'ABCD' ;字符串2
CONT2 EQU ($-STRING2)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV AL,CONT1 ;比较1和2的字符串长度是否相等
MOV BL,CONT2
CMP AL,BL
JNZ ABC ;如果不等,跳到ABC
LEA SI,STRING1
LEA DI,STRING2
MOV CX,CONT1
CLD
REPE CMPSB ;串比较
JNE ABC ;不相等跳到ABC
JMP ABCD ;相等跳到ABCD
ABC: MOV AH,02H ;显示NO
MOV DL,4EH
INT 21H
MOV DL,4FH
INT 21H
MOV DL,20H
INT 21H
ABCD: MOV AH,02H ;显示MATCH
MOV DL,4DH
INT 21H
MOV DL,41H
INT 21H
MOV DL,54H
INT 21H
MOV DL,43H
INT 21H
MOV DL,48H
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
展开
 我来答
杰艾琪
2012-05-21 · TA获得超过594个赞
知道小有建树答主
回答量:219
采纳率:0%
帮助的人:64.4万
展开全部
字符串指令CMPS的前提是源串在DS:SI,目的串在ES:DI。而你的两个串都在DS里,所以你要用DS的值赋给ES。但是段寄存器之间不可直接赋值,所以需要借助其他寄存器。即在
REPE CMPSB
前面应该加上
MOV AX,DS
MOV ES,AX
迪凯特科技(北京)有限公司
2023-07-28 广告
单片机串口通信的原理是利用单片机的串口通信模块,通过把数据转化为一位一位的用时序方式传送数据,实现单片机与外部设备之间的数据通信。 串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以... 点击进入详情页
本回答由迪凯特科技(北京)有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式