永发信息网

一个汇编串比较程序

答案:1  悬赏:0  手机版
解决时间 2021-05-06 18:03
  • 提问者网友:愿为果
  • 2021-05-06 05:02

DATAS SEGMENT
;此处输入数据段代码
s1 db 1,2,3,4,5
s2 db 1,2,3,3,5
DATAS ENDS

STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码

mov cx,5
mov si,offset s1
mov di,offset s2
cld
repz cmpsb

jne show

jmp exit

show:
mov bl,[si]
add bl,30h
mov ah,2
mov dl,bl
int 21h
exit:
;程序结束
MOV AH,4CH
INT 21H
CODES ENDS
我想实现的是串比较,显示出不同的元素

但是没能实现

最佳答案
  • 五星知识达人网友:旧脸谱
  • 2021-05-06 06:05

你这个程序的错误非常的多,干脆替你重新写了一个


assume ds:datas,cs:codes,ss:stacks
datas segment
s1 db 1,2,3,4,5
s2 db 1,2,3,3,5
datas ends


stacks segment
db 12 dup (0)
stacks ends


codes segment
start:mov ax,datas
mov ds,ax
mov ax,stacks
mov ss,ax
mov sp,12
mov ax,0
mov si,0
mov cx,5
s:mov dl,s1[si]
cmp s2[si],dl
jne show
go:inc si
loop s
show:add dl,30h;显示不同的字符
mov ah,2
int 21h
mov ah,4ch ;退出程序
int 21h
codes ends
end start


“mov si,offset s1”的用法是错误的,“标号”在code段中才是这样用


而你的“标号”是定义在了data段里

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯