мм.. обычно если делимое 16-разрядное то делитель - 8. а так.. вычитать из делимого делитель, смотреть знак результата, сдвигать делимое вправо итд.. если деление со знаком, то сложнее, хотя можно запомнить знак и превратить все числа в положительные поищи что-нибудь по ключевым словам "деление с восстановленем остатка" и "деление без восстановления остатка".
А использовать 16/32-разрядные регистры нельзя? алгоритм беззнакового деления с двойной точностью числа (с*256+d)/(a*256+b) вычисляются такие q (остаток) и r (частное), что c=a*r+q c*256+d=(ar+q)*256+d=r(a*256+b)+q*256+d-rb величина q*256+d-rb считается остатком от первоначального деления, если она отрицательна, делаем декримент r до тех пор, пока она не станет положительной
Примерный двоичный алгоритм: 1) расширяем числа: 0:0:al:bl = x cl:dl:0:0 = y пусть q = x - остаток 2) повторять пункты 3-6 нижеперечисленное от i = 15 до 0 3) вычисляется бит результата i 4) вычитаем q = q-y (да, вычитание будет многобайтное) 5) если результат больше нуля - бит результата 1 меньше нуля - бит результата 0, восстановить остаток q = q+y (многобайтное сложение) 6)сдвинуть y на 1 бит врпаво (многобайтный сдвиг) 7)цикл закончен - есть результат, и есть q - остаток Зы - здесь возможно глюк в номере выичляемого, бита результата ... писал по памяти ...