重复控制前缀重复前缀REP当相等重复前缀REPZ/REPE当不相等重复前缀REPNZ/REPNE
② 重复控制前缀 重复前缀REP 当相等重复前缀REPZ /REPE 当不相等重复前缀REPNZ /REPNE
重复前缀REPCX-0 ?执行过程:N(1)当(CX)=0 ,结束REP执行REP下一条指令。(CX)=(CX)-1(2)当(CX)±0,将CX的内容减1 执行REP后的串指令,返回(1)。REP后的串指令例LEADI, destinationLEASI, sourceMOV CX , 20REPMOVSBMOV AX, 0REP执行流程只在(CX)=0时退出循环
⚫重复前缀REP 执行过程: (1)当(CX)= 0 ,结束REP, 执行REP下一条指令。 (2)当(CX)≠0,将CX 的 内容减1, 执行REP后的串指令,返回 (1)。 例 LEA DI, destination LEA SI, source MOV CX,20 REP MOVSB MOV AX, 0 ◆ 只在(CX)=0时退出循环 REP 执行流程 (CX)=(CX)-1 REP 后的 串 指 令 Y N CX=0 ?
当相等重复前缀REPZ1CX-0?执行过程:IN(1)当(CX)=0,结束REPZ,(CX)=(CX)-1执行REPZ下一条指令;REPZ后的(2)当(CX)#0,将CX的内容减1,串指令执行REPZ后的串指令;+(3)当ZF =1,返回(1);ZF=1 ?(4)当ZF1,则结束REPZ,JY执行REPZ下一条指令。Y(CX)减1操作不影响标志ZF标志由串操作决定REPZ执行流程
⚫当相等重复前缀REPZ 执行过程: (1) 当(CX)= 0 , 结束REPZ, 执行REPZ下一条指令; (2) 当(CX)≠0,将CX 的内容减1, 执行REPZ后的串指令; (3) 当ZF = 1, 返回 (1) ; (4) 当ZF≠1, 则结束REPZ, 执行REPZ下一条指令。 ◆ (CX)减1操作不影响标志 ◆ ZF标志由串操作决定 REPZ 执行流程 (CX)=(CX)-1 REPZ 后的 串 指 令 Y N Y N CX=0? ZF=1 ?