我该如何在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/