Наконец, если память служит, у 6800 нет инструкции деления (IIRC, которая была добавлена в 6809), поэтому вам придется реализовать деление самостоятельно (или, если вас не волнует скоростьпросто несколько раз вычтите делитель, пока результат не станет меньше делителя, и это ваш остаток).
Просто вычислить остаток (без деления) на самом деле довольно просто в двоичном виде:
- сдвиг делителя влево до тех пор, пока он не станет больше, чем дивиденд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, мы имеемremainder: 1. Если вы хотите это проверить, 9x14 = 126.