什么是“.UNTIL!ZERO?”在x86 asm中意味着什么?

时间:2014-12-27 07:37:08

标签: assembly x86 masm

SENDS PROC NEAR
MOV CX,16
.REPEAT
   .REPEAT
      IN AL,CSTAT
      TEST AL,20H
   .UNTIL !ZERO?
   LODSB
   OUT DATA,AL
.UNTILCXZ

RET

这是一个x86 asm程序,PC16550D读取16个字节。外循环重复16次。检查CSTAT以查看是否收到数据。    在“.UNTIL!ZERO?”中,ZERO是否意味着零旗?什么“?”和“!”意思?

1 个答案:

答案 0 :(得分:0)

这是一个后测试循环条件,在零标志未设置时匹配。

.UNTIL directive结束.REPEAT block并具有以下语法:.UNTIL condition

在有问题的情况下!ZERO?是条件。这是一个包含2个运算符的表达式。 ! operator是一个逻辑否定。 ZERO? operator检查零标志的状态。他们合并检查零标志是否未设置。