Bug bei Float Variablen?
- remi_meier
- Beiträge: 1078
- Registriert: 29.08.2004 20:11
- Wohnort: Schweiz
Dieser Befehl ist nötig, damit man danach wieder FPU-Befehle benutzen
kann und diese auch ein Resultat liefern. Wenn du diesen Befehl also
nicht vor der nächsten z. B. Float-Multiplikation ausführst, wird die Multi-
plikation nur Mist sein. Wäre hier wohl nicht nötig, da ich nirgends Floats
benutze.
kann und diese auch ein Resultat liefern. Wenn du diesen Befehl also
nicht vor der nächsten z. B. Float-Multiplikation ausführst, wird die Multi-
plikation nur Mist sein. Wäre hier wohl nicht nötig, da ich nirgends Floats
benutze.
@remi_meier: aha danke 
@MVXA: hmm also bei mir funktioniert das ganze einwandfrei...von daher liegts schonmal nich an dem code...eher an deinem rechner
edit: ich hab das mal getestet:
für 100 millionen additionen:
mit debug:
mit pb: 6133ms
mit asm (also über mmx): 3363ms
ohne debug:
mit pb: 629ms
mit asm: 244ms
und dann das ganze nochmal ohne EMMS
mit debug:
mit pb: 6237ms
mit asm (also über mmx): 3400ms
ohne debug:
mit pb: 628ms
mit asm: 257ms
also die ergebnisse weichen immer en bissl ab...messungenauigkeiten...is ja klar...aber man kann sagen dass die methode über mmx etwa doppelt so schnell is wie die pb-methode

@MVXA: hmm also bei mir funktioniert das ganze einwandfrei...von daher liegts schonmal nich an dem code...eher an deinem rechner
edit: ich hab das mal getestet:
für 100 millionen additionen:
mit debug:
mit pb: 6133ms
mit asm (also über mmx): 3363ms
ohne debug:
mit pb: 629ms
mit asm: 244ms
und dann das ganze nochmal ohne EMMS
mit debug:
mit pb: 6237ms
mit asm (also über mmx): 3400ms
ohne debug:
mit pb: 628ms
mit asm: 257ms
also die ergebnisse weichen immer en bissl ab...messungenauigkeiten...is ja klar...aber man kann sagen dass die methode über mmx etwa doppelt so schnell is wie die pb-methode

- remi_meier
- Beiträge: 1078
- Registriert: 29.08.2004 20:11
- Wohnort: Schweiz
- remi_meier
- Beiträge: 1078
- Registriert: 29.08.2004 20:11
- Wohnort: Schweiz
- remi_meier
- Beiträge: 1078
- Registriert: 29.08.2004 20:11
- Wohnort: Schweiz
hm...
Das hier ist noch fast schön
Aber wenn man das als Grundlage nimmt, kann man sich vorstellen, wie
komplexere Ausdrücke aussehen. Jeder kann selbst schauen, mit dem
CLI Compiler-Parameter /COMMENTED.
Für die Addition und die Subtraktion also mit zwei 32-Bit-Registern und
halb-manuellem Übertragsrechnen.
Das hier ist noch fast schön
Code: Alles auswählen
; pbres.q = a + b
MOV ebx,dword [v_a]
MOV edi,dword [v_a+4]
LEA eax,qword [v_b]
ADD ebx,[eax]
ADC edi,[eax+4]
PUSH edi
PUSH ebx
POP dword [v_pbres]
POP dword [v_pbres+4]
komplexere Ausdrücke aussehen. Jeder kann selbst schauen, mit dem
CLI Compiler-Parameter /COMMENTED.
Für die Addition und die Subtraktion also mit zwei 32-Bit-Registern und
halb-manuellem Übertragsrechnen.
ohje...kein wunder, dass das länger dauert...naja aber das is auch nich gerade besonders optimiert (ich gehe mal davon aus, dass das so is, weil der compiler ja auch mit weitaus komplexeren rechenoperationen zurecht kommen muss)remi_meier hat geschrieben:hm...
Das hier ist noch fast schönAber wenn man das als Grundlage nimmt, kann man sich vorstellen, wieCode: Alles auswählen
; pbres.q = a + b MOV ebx,dword [v_a] MOV edi,dword [v_a+4] LEA eax,qword [v_b] ADD ebx,[eax] ADC edi,[eax+4] PUSH edi PUSH ebx POP dword [v_pbres] POP dword [v_pbres+4]
komplexere Ausdrücke aussehen. Jeder kann selbst schauen, mit dem
CLI Compiler-Parameter /COMMENTED.
Für die Addition und die Subtraktion also mit zwei 32-Bit-Registern und
halb-manuellem Übertragsrechnen.
und danke für den tipp mit /COMMENTED
