Autor Thema: mit sub auf 0 setzen schneller?  (Gelesen 4898 mal)

scales of justice

  • Beiträge: 228
    • Profil anzeigen
Gespeichert
« am: 29. March 2006, 14:34 »
Hallo,

ein Register setzt man ja normalerweise mit

mov ax, 0000h

auf 0

dann gibt es noch diese Möglichkeit:

xor ax, ax

die schneller ist da sie ein Byte kleiner als die o.g. ist

aber was ist mit dieser:

sub ax, ax

ist die schneller oder langsamer als die 2. o.g.?

ich hab mir mal den Linux Bootsektor angeschaut und die haben sub benutzt

Osbios

  • Beiträge: 247
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 29. March 2006, 16:10 »
Also von der reinen Logik her müsste xor schneller sein. Ich habe mal über Google danach gesucht und bin unter anderem darauf gestoßen:
sub     ax,ax
 xor     bx,bx
 sub     cx,cx
 xor     dx,dx
 sub     di,di
 xor     si,si
 sub     bp,bp

Dort wird immer abwechselnd xor und sub benutzt. Die Vermutung liegt nahe, dass es sich um eine Pipelineoptimierung handelt. Die alternative währe :xor ax,ax
mov bx,ax
mov cx,ax
mov dx,ax
mov di,ax
mov si,ax
mov bp,ax
Wobei dann immer AX angesprochen wird. (Schlecht aus der Sicht von Pipelineoptimierung)
db 0x55AA

bitmaster

  • Troll
  • Beiträge: 1 138
    • Profil anzeigen
    • OS-64 = 64 Bit Operating System
Gespeichert
« Antwort #2 am: 29. March 2006, 21:43 »
sind sowieso nur 0,00000000000000000000000000001 sekunden schneller (oder auch nicht)

habe ich ein paar Nullen vergessen? ;)


bitmaster
In the Future everyone will need OS-64!!!

scales of justice

  • Beiträge: 228
    • Profil anzeigen
Gespeichert
« Antwort #3 am: 30. March 2006, 11:55 »
aber das summiert sich ja alles, wenn irgendeine grundlegenede Funktion eines Betriebssystem auch nur ein ganz kleines bisschen schneller ist
und dann aber millionen mal aufgerufen wird, ist das ganze Betriebssystem schon um ein paar Sekunden schneller
und wenn man das dann noch mit mehreren Funktionen macht lohnt sich das richtig

na egal, ich bleib einfach bei xor
Pipeline Optimierung kann ich noch machen wenns drauf an kommt

 

Einloggen