7.4.3 .REPEAT/.UNTIL和.REPEAT/.UNTILCXZ

  这组宏指令相当于高级语言中的UNTIL语句。
 
  其格式为:
   .REPEAT
   (汇编语言语句组)
   .UNTIL 表达式
  和
   .REPEAT
   (汇编语言语句组)
   .UNTILCXZ
  或
   .REPEAT
   (汇编语言语句组)
   .UNTILCXZ 表达式
  必须注意, .REPEAT循环主体长度必须小于127字节,否则汇编程序将指示出错。
  .REPEAT/.UNTIL先执行 .REPEAT以后的汇编语言语句,然后再测试表达式的值。如表达式为假,则转回执行循环,并返回测试直到表达式为真为止。所以,其结构与高级语言中的UNTIL循环类似。

  还有一种格式是 .UNTILCXZ后可以带表达式,这种表达式只限于使汇编程序产生比较相等或不等的代码,所以它的格式可以是以下几种:
  
reg == reg reg != reg
  reg == memory reg != memory
  reg == constant reg != constant
  memory == constant memory != constant

  其中reg表示寄存器,memory表示存储单元。对于带表达式的.UNTILCXZ 表达式,汇编程序除用CX作为循环计数器外,还将使用一个比较操作和LOOPE或LOOPNE指令来产生循环。也就是说,这种循环的结束条件为CX = 0或表达式值为真。