【发布时间】:2018-05-03 06:00:02
【问题描述】:
基本上,如果我在 D1 中有一个数字,并且希望它始终是偶数,我将如何确保它永远不会是奇数?
我知道它与 AND 指令有关。但是当我尝试这样做时,它总是会减去 1。所以它会将奇数变为偶数,将偶数变为奇数。
if n is odd, sub 1我基本怎么办
【问题讨论】:
-
所以它会将奇数变为偶数,将偶数变为奇数:AND不能设置位,只能清除它们或保持它们设置,所以它不能产生偶数数奇数。所以你对 AND 的尝试一定有一个错误,使它做别的事情。 (XOR 与 1 会翻转低位,在奇数和偶数之间翻转。ADD 1 也会如此,但这会带入高位。)无论如何,希望通过这些答案+easy68k 内置的调试器,您可以整理出您的实际情况做了。
-
"... AND 指令。但是当我尝试这样做时,它总是会减去 1。" - 这实际上是不可能的。如果你真的相信这一点,你应该尝试产生minimal reproducible example,但你应该自己弄清楚
and不会总是减1(例如(12 and 254) = 12...仅(13 and 254) = 12之类的情况可能看起来像是 1) 的减法。
标签: assembly bit-manipulation 68000 easy68k