如何在摩托罗拉M6800的程序集中使用数字的mod,例如%9。请告诉我应该使用哪些助记符。
答案 0 :(得分:11)
最后如果内存服务,6800没有分区指令(在6809中添加了IIRC),所以你必须自己实现分区(或者,如果你不关心速度,只是重复减去除数,直到结果小于除数,那就是你的余数。
在二进制中实际上很容易计算余数(没有除法):
例如,让我们计算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;
}