我该如何在Motorola M6800的汇编中获取数字的模数,例如%9。请告诉我应该使用哪种助记符。

最佳答案

最后,如果有内存,则6800没有除法指令(在6809中添加了IIRC),因此您必须自己实现除法(或者,如果您不关心速度,只需减去重复除数,直到结果小于除数,这就是您的余数)。

仅仅算出余数(不除法)实际上很容易用二进制表示:


向左移动除数,直到除数更大
右移一位
如果小于股息,则从股息中减去
重复步骤2和3,直到所剩下的余数小于除数
那是你剩下的


例如,让我们计算出127除以9后的余数。我们从左移9开始:

127 = 0111 1111
9   = 0000 1001


向左移动,直到得到:

  0111 1111
  1001 0000


反复移位和减去:

      0111 1111
-     0100 1000
=     0011 0111

      0011 0111
-     0010 0100
=     0001 0011

      0001 0011
-     0001 0010
=     0000 0001


由于1小于9,我们得到余数:1.如果要检查,则9x14 = 126。

关于assembly - 我该如何在摩托罗拉M6800的 assembly 中取一个数模,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5189631/

10-11 18:26