Der Martin: Bitweiser Zugriff

Beitrag lesen

Hallo Richard,

zum Zeitbedarf deiner Beispiele:

mov ax, [speicheradresse1] ; das braucht richtig lange (Speicherzugriff)
shr ax, 5                  ; nur wenige Taktzyklen
and ax, 1                  ; dito
mov [speicheradresse2], ax ; und noch ein Zeitfresser

Die wegen der Speicherzugriffe wirklich zeitintensiven Befehle hast du bei deiner Variante b) auch, die spart daher nicht wirklich viel ein. Ich schätze das Einsparpotential auf weniger als 5% pro Schleifenumlauf.

Ideal wäre eine Selbstzuweisung:
Diese (könnte) der Kompiler optimieren zu:
and wordptr ds:[speicheradresse], 32

Richtig, das sind aber immer noch zwei zeitintensive Speicherzugriffe, einmal lesen und einmal schreiben. Also auch hier nur wenig Einsparung.
Okay, der Unterschied ist messbar und vielleicht auch fühlbar, aber bei weitem nicht so groß, wie du ihn darstellst.

Ciao,
 Martin

--
Ja, ja... E.T. wusste schon, warum er wieder nach Hause wollte.