小编use*_*593的帖子

为什么 repe 和 repne 在 movsb 之前做同样的事情?

我很快就有了一个组装测试,在准备的时候,我注意到了一些奇怪的事情。
repe movsb在 ZF=0 时重复,我被教导repe应该在 CX 不等于 0 和 ZF=1 时重复。
我做了一些测试,发现之前movsbrepreperepne指令的工作方式相同。
对此有何解释?

编辑:这是代码:

.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)

x86 assembly machine-code repeat instructions

6
推荐指数
1
解决办法
1768
查看次数

标签 统计

assembly ×1

instructions ×1

machine-code ×1

repeat ×1

x86 ×1