Assembly 程序集中未定义的状态标志值

Assembly 程序集中未定义的状态标志值,assembly,x86,flags,x86-16,Assembly,X86,Flags,X86 16,我找到了intel 8086命令列表,以及每条指令如何影响标志() 问题是,如果某些指令的标志未定义(标记为?),我不知道会发生什么 例如,如果我们将辅助标志设置为1,并运行XOR BX,A3BA,其中BX为04B7,则辅助标志在指令执行后变为零。在文档中,我们可以看到XOR将辅助标志标记为未定义。那么如何确定未定义的标志如何更改呢?这些标志是根据每条指令的结果设置的。某些标志(如A标志)可能对某些指令没有任何意义。在执行不涉及4位算术的指令时,谈论4位进位(这是a标志所指示的)是毫无意义的 关

我找到了intel 8086命令列表,以及每条指令如何影响标志()

问题是,如果某些指令的标志未定义(标记为?),我不知道会发生什么


例如,如果我们将辅助标志设置为1,并运行
XOR BX,A3BA
,其中
BX
04B7
,则辅助标志在指令执行后变为零。在文档中,我们可以看到
XOR
将辅助标志标记为未定义。那么如何确定未定义的标志如何更改呢?

这些标志是根据每条指令的结果设置的。某些标志(如A标志)可能对某些指令没有任何意义。在执行不涉及4位算术的指令时,谈论4位进位(这是a标志所指示的)是毫无意义的


关注对正在执行的指令有意义的标志,忽略其余的标志。

这些标志是根据每条指令的结果设置的。某些标志(如A标志)可能对某些指令没有任何意义。在执行不涉及4位算术的指令时,谈论4位进位(这是a标志所指示的)是毫无意义的


关注对正在执行的指令有意义的标志,忽略其余的。

未定义意味着标志的值可以是任何值。零是“anything”的有效值。@RaymondChen所以说在这个命令之后,辅助标志可以是1或0(随机)?这就是“undefined”的意思。该规范没有提供定义。因此,任何行为都是合法的。未定义意味着标志的值可以是任何东西。零是“anything”的有效值。@RaymondChen所以说在这个命令之后,辅助标志可以是1或0(随机)?这就是“undefined”的意思。该规范没有提供定义。因此,任何行为都是合法的。