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或表达式值为真。
|