was is schneller???



  • hi,
    als ich grad so in nem tutorial stöberte stellte ich mir olgende frage:
    wenn ich per

    mov ah,01h
    int 21h
    

    auf ein zeichen warte
    ist es dann schneller wenn ich

    cmp al,'z'
    je charZ
    ...
    

    oder

    sub al,122d
    jz charZ
    ...
    

    ich hoffe mal ihr habt verstanden was ich meine!

    danke schonmal für antworten jeglicher art!



  • ich denke cmp, weil es das ergebnis nicht nach AL schreiben muss. miss doch einfach nach, dann weisst du es ganz sicher.

    außerdem gibt es keinen unterschied zwischen 'z' und 122, weil der assembler das 'z' beim assemblieren durch eine hexadezimalzahl ersetzt. je und jz ist auch das gleiche, beide springen wenn das zeroflag gesetzt ist, je ist einfach nur für die lesbarkeit.



  • es ging auch nicht darum ob 'z' das gleiche ist wie 122, sondern um den vergleich zwischen sub : cmp!

    trotzdem danke für die antwort!!!



  • cmp ist schneller und sollte auch fuer Vergleiche verwendet werden, wenn das Ergebnis der Subtraktion nicht ohnehin benoetigt wird.

    Obwohl die Geschwindigkeit selbst auf dem 286 schon kaum einen Unterschied darstellte (gleichschnell bei (e)ax - 2cl Unterschied bei Speicheroperationen)


Anmelden zum Antworten