我很快就有了一个组装测试,在准备的时候,我注意到了一些奇怪的事情。
repe movsb在 ZF=0 时重复,我被教导repe应该在 CX 不等于 0 和 ZF=1 时重复。
我做了一些测试,发现之前movsb的rep,repe和repne指令的工作方式相同。
对此有何解释?
编辑:这是代码:
.model small
.data
A db ' This is a test '
N db 27
.stack 10h
.code
mov ax,@data
mov ds,ax
mov es,ax
cld
mov al,' '
mov cl,N
xor ch,ch
mov di,offset A
next: repe scasb
jcxz cont ; jump if cx=0
dec di
inc cx
xchg si,di ; swap between si and di …Run Code Online (Sandbox Code Playgroud)