Спасибо за решение, пока я выкручивался так:
Var
q,x,y,a,b,counter : byte;
Begin
x := 20;
y := 4;
q := 0;
while x >= y do
Begin
a := x shr 1;
b := y;
counter := 1;
while a >= b do
begin
b := b shl 1;
counter := counter shl 1;
end;
x := x - b;
q := q + counter;
End;
Debug(0,0,q); {Print result X DIV Y}
end.
Но похоже что твое решение намного быстрее. Щаз скоро проверим. Спасибо.