汇编笔记3

与 REPE/REPZ(REPNE/REPNZ) 配合工作的 CMPS和SCAS

REPE / REPZ 相等/为零时重复执行串指令,(CX)=比较/扫描的次数
  执行操作:

  ① (CX)=0或ZF=0时,结束执行串指令,否则继续② ~ ④

  ② (CX)←(CX)-1

  ③ 执行串指令(CMPS或SCAS)

  ④ 重复执行①

REPNE / REPNZ 不等/不为零时重复执行串指令,(CX)=比较/扫描的次数

  执行操作:

  ① (CX)=0或ZF=1,结束执行串指令,否则继续② ~ ④

  ② (CX)←(CX)-1

  ③ 执行串指令(CMPS或SCAS)

  ④ 重复执行①


  REP对其后的串指令(MOVS或STOS)只有一个结束条件,即重复次数(CX)=0。在进行串比较和串扫描时,串指令前应加前缀REPE(REPZ)或REPNE(REPNZ),这两条重复前缀用重复次数(CX)和比较结果(ZF)来控制串指令的结束。当(CX)=0时,说明每个串数据都比较(或扫描)过了,此时串操作正常结束;当因ZF=1或0而结束串操作时,说明在满足比较结果相等或不等的条件下,可提前结束串操作。

好…..收获不小…又学到了几个字符和字符串比较的指令……怎么今天下午一点都不困呢..哈哈..不知道….不困就继续学吧…..