Ich denk mal der Fehler kommt durchs Teilen zustande.
(Ob die Rechnung so stimmt, weiss ich nicht, zumindest könnt ichs mir so erklären):

die 8 MHz durch 9600 Ergibt 833,3333333333333....
die 8 MHz durch 31250 ergibt glatte 256,00
So hat man bei einem nie den exakten Wert (Abweichung >0), beim anderen schon (Abweichung = 0)