标题:出现问题,求助!
只看楼主
hero2007
Rank: 1
来 自:湖北武汉
等 级:新手上路
威 望:1
帖 子:130
专家分:0
注 册:2007-3-22
得分:0 

cmp dl,20
jz a6
jmp a7
这个我没想明白。

[此贴子已经被作者于2007-6-29 23:49:36编辑过]

2007-06-29 23:43
hero2007
Rank: 1
来 自:湖北武汉
等 级:新手上路
威 望:1
帖 子:130
专家分:0
注 册:2007-3-22
得分:0 
睡觉了
2007-06-29 23:53
冰_山
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-6-28
得分:0 
一:sub c,dh 是当c的值加了好多次以后就变了,所以要剪掉那边了的几个。
二:cmp dl,20
jz a6
jmp a7
是想知道比较完20次没有 完了的话就a++, 没完的话就继续往后找。
三: 哦对 我那个输出提示没写不过也不影响大局
( a9: mov dl,[bx][si]上面应该有:

lea dx,r ;输出提示 the same in the A and B is:
mov ah,9
int 21h )
四:你那个重复前缀是什么意思 (SCASW前面的重复前缀怎么没有?)
不是di自动加吗 di<-di-2
五:那个是寄存器不够用了 我也不知道能不能
mov c,ah
inc c
mov c,al
inc c
补充:就是那个编译执行的现象是CPU占用99% 可能是进入了死循环!

2007-06-30 00:51
hero2007
Rank: 1
来 自:湖北武汉
等 级:新手上路
威 望:1
帖 子:130
专家分:0
注 册:2007-3-22
得分:0 

重复前缀指的REP或者REPE/REPZ或者REPNE/REPNZ

那个输出提示没写的确不影响大局,但这是漏洞
( a9: mov dl,[bx][si]上面应该有:

lea dx,r ;输出提示 the same in the A and B is:
mov ah,9
int 21h )

明确的告诉你,下面这样是错误的,想想用BP吧。
mov c,ah
inc c
mov c,al
inc c

2007-06-30 11:05
hero2007
Rank: 1
来 自:湖北武汉
等 级:新手上路
威 望:1
帖 子:130
专家分:0
注 册:2007-3-22
得分:0 

另外 SCASW的条件有一条是:
目的串是在附加数据段ES定义的。
不知道你注意到没?
像你这样定义的,在代码段开头得有es:data(和ds一样)

2007-06-30 11:21
冰_山
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-6-28
得分:0 
好了!这下看看
data segment
a db 30 dup(?),'$'
b db 40 dup(?),'$'
c db 30 dup(?),'$'
p db 'please input 15(00-99)different in A:$'
q db 'please input 20(00-99)different in B:$'

data ends
code segment
assume ds:data,cs:code,es:data
CRLF macro
mov ah,2
mov dl,0dh
int 21h
mov dl,0ah
int 21h
endm
start: mov ax,data
mov ds,ax
mov es,ax
lea dx,p
mov ah,9
int 21h
CRLF
mov si,0
lea bx,a
mov cx,30
a1: mov ah,1
int 21h
mov [bx][si],al
inc si
mov ax,si
mov dl,2
div dl
cmp ah,0
jnz a2
mov dl,' '
mov ah,2
int 21h
a2: loop a1
CRLF
lea dx,q
mov ah,9
int 21h
CRLF
mov si,0
lea bx,b
mov cx,40
a3: mov ah,1
int 21h
mov [bx][si],al
inc si
mov ax,si
mov dl,2
div dl
cmp ah,0
jnz a4
mov dl,' '
mov ah,2
int 21h
a4: loop a3

CRLF
mov si,0
mov dh,0
lea bx,a
mov bp,0
a6: mov dl,0
cmp si,30
jz a8
mov ah,[bx][si]
inc si
mov al,[bx][si]
lea di,b
CLD
a7: SCASW
jz a5
inc dl
inc si
cmp dl,20
jz a6
jmp a7
a5: add dh,2

mov ds:c[bp],ah

inc bp

mov ds:c[bp],al

inc bp
inc si
jmp a6

a8: cmp dh,0
jz a11
mov cl,dh
mov ch,0

lea bx,c
mov si,0
a9: mov dl,[bx][si]
mov ah,2
int 21h
inc si
mov ax,si
mov dl,2
div dl
cmp ah,0
jnz a10
mov dl,' '
mov ah,2
int 21h
a10: loop a9
a11: mov ah,4ch
int 21h
code ends
end start

2007-06-30 17:27



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-151181-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.109471 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved