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是否意味着零旗?什么“?”和“!”意思?
答案 0 :(得分:0)
这是一个后测试循环条件,在零标志未设置时匹配。
.UNTIL directive结束.REPEAT block并具有以下语法:.UNTIL condition
在有问题的情况下!ZERO?
是条件。这是一个包含2个运算符的表达式。 ! operator是一个逻辑否定。 ZERO? operator检查零标志的状态。他们合并检查零标志是否未设置。