回 帖 发 新 帖 刷新版面

主题:测试指令

TEST AL,80H
JZ NEXT
AND AL,3FH
INC AL
NEXT:....



JZ NEXT:这句是如为正数,则跳转至NEXT吗?JZ的含义为为零转移(是状态位ZF为零么?),如果ZF为零,则表示AL和80H(即10000000)逻辑'与'的结果所有为都为零。这种解释对不?

回复列表 (共2个回复)

沙发

听说好像有个屏蔽低七位的说法,是否有依据?

板凳

TEST指令不会改变操作数值,用来测试某位比较好。指令影响ZF标志位。JZ会在ZF=1时跳转。

“如果ZF为零,则表示AL和80H(即10000000)逻辑'与'的结果所有为都为零。”--应该是表示AL高位为0。而且也不能说一定就称为正数了,这在有符号数来说可能是这样的,对于字符类型等则不是这样--数据类型应该是更高级的一层。现在只能说它的高位为0?

因为TEST是不改变操作数的,要屏蔽低7位,应该要用AND指令了。

我来回复

您尚未登录,请登录后再回复。点此登录或注册