【发布时间】:2013-08-27 16:25:43
【问题描述】:
我正在尝试理解一些跳转命令
edx 为 -126,eax 为 +127
cmp edx, eax
ja short <offset>
它说明了跳转,现在我明白它基于设置的标志,我不明白数学是如何有意义的,例如,如果我们有一个 JZ 命令并且结果是相等的,那么显然跳转会是采取。据我了解, cmp 命令从源中减去目标,在这种情况下,它将是 -126 加上 127,结果为 1,我只是没有得到什么 MATH 结果触发标志?这就是我想知道的全部内容
【问题讨论】:
-
127 - (-126) == 253,不是1... 另外,如果我没记错的话,ja会查看 (Z)ero 标志和 (S)ign 标志,如果两者都没有设置。换句话说,如果减法的结果为正且非零。 -
代码看起来像是 Intel 语法,所以应该是
-126 - 127(写成0xFFFFFF82 - 0x7F时更有意义)
标签: assembly