如何在摩托罗拉M6800的汇编中使用mod的数字

vir*_*tue 2 assembly motorola

如何在摩托罗拉M6800的程序集中使用数字的mod,例如%9.请告诉我应该使用哪些助记符.

Jer*_*fin 11

最后,如果内存服务,6800没有分区指令(在6809中添加了IIRC),所以你必须自己实现分区(或者,如果你不关心速度,只需减去反复除数,直到结果小于除数,那就是你的余数.

只想计算余数(没有除法)实际上很容易用二进制:

  1. 将除数向左移,直到它比被除数大
  2. 把它转移到一个地方
  3. 如果它小于股息,则从股息中减去它
  4. 重复步骤2和3,直到红利的剩余部分小于除数
  5. 那是你的余生

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

127 = 0111 1111
9   = 0000 1001
Run Code Online (Sandbox Code Playgroud)

向左转,直到你得到:

  0111 1111
  1001 0000
Run Code Online (Sandbox Code Playgroud)

反复移位和减去:

      0111 1111
-     0100 1000
=     0011 0111

      0011 0111
-     0010 0100
=     0001 0011

      0001 0011
-     0001 0010
=     0000 0001
Run Code Online (Sandbox Code Playgroud)

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