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

时间:2011-03-04 04:24:01

标签: assembly motorola

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

2 个答案:

答案 0 :(得分:11)

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

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

  1. 将除数向左移,直到它大于被除数
  2. 将它移到一个地方
  3. 如果小于被除数,则从被除数
  4. 中减去它
  5. 重复步骤2和3,直到红利的剩余部分小于除数
  6. 那是你的余生
  7. 例如,让我们计算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。

答案 1 :(得分:-4)

使用easy 68k

#include <iostream>
using namespace std;
int main ()
{

    {cout << "THE MULTIPLES OF THREE FROM 1-30 ARE: " <<endl;
    int a;
    int sum =0;
    for (a=1; a<=30; a++)
    {if ((a%3) == 0)
    {cout <<a << "\n" <<endl;
    sum =sum+a;
    }}
    cout <<"\tSUM = " <<sum<<endl;
    }
    system ("Pause");
    return 0;
}