Любопытная задача на мой взгляд. Если только абстрогироваться от х86 и просто расмотреть различные варианты в духе Уорена. Если рассмотреть деление X на 2^n -1 как частное от деления X\2^n + Y наблюдается любопытная рекурентость.
Вот тебе без умножений алгоритм: Пусть даны целые числа A и B=2^n-1 Требуется найти X=A/B, что эквивалентно X*B=A. Двоичная запись B состоит из одних единиц. Пусть (для примера) B=1111 Пусть xyzuvw - двоичная запись X Пусть abcdefghi - двоичная запись A Запишем умножение X*B в столбик ___xyzuvw _____1111 -------------- ___xyzuvw __xyzuvw _xyzuvw xyzuvw ---------------- abcdefghi Отсюда можно рекурентно найти неизвестные биты w,v,u... w=i v=h-w .... и т.д. P.S. Не забудь переносы при сложении учитывать.