Mam problem otórze napisałem kalkulator we Free Pascalu, a obliczeniami zajmuja sie wstawki asemblerowskie. Problem sprawia fragment kodu odpowiedzialny za dzielenie. U mnie wyglada on nastepujaco:
'/': begin
repeat
licznik:=licznik+1;
asm
shr liczba1, 1
end;
until licznik=liczba2-1;
wynik:=liczba1;
licznik:=0;
end;
Bład pojawia sie podczas dzielenie 8:4, wychodzi że równa sie to 1. Wiem że dzieje sie to dlatego że 8 w postaci binarnej to 1000 a po czterokrotnum przesunieciu bitu w prawo zostaje samo 1. Czy da sie jakoś temo zaradzić?
Pozdrawiam.