如何在摩托罗拉 M6800 的汇编中取数字的 mod,例如 a%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 中对数字进行取模,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5189631/