C/C++ Assembler



  • Hi
    Ich hab mich mal eine kurze Zeit mit Assembler beschäftigt, dass heißt ich kenn gerade mal die Befehle wie bsp: (ich weiß, dass das Programm so keinen Sinn macht)

    MOV EAX,00404ACF
    XOR BYTE PTR DS:[EAX],0F
    INC EAX
    CMP EAX,0040A92E
    JLE SHORT 0040E7C0
    JMP 00404ACA
    

    Was kann man mit Assembler eigentlich machen (außer Aplication Patching und Bufferoverflows), was in C/C++ nicht geht?
    Und wann lohnt es sich Assembler Codes in ein C/C++ Programm einzufügen?



  • allgemein sagt man, dass man assembler in hochsprachen an stellen benutzt, bei denen man register verändern oder spezielle interrupts aufrufen muss. Beispiel hier aus dem forum ist in der faq das grafikprogramm in c (videointerrupt)



  • 19freddy92 schrieb:

    (außer Aplication Patching und Bufferoverflows)

    😕

    19freddy92 schrieb:

    Und wann lohnt es sich Assembler Codes in ein C/C++ Programm einzufügen?

    Das ist nicht so einfach zu beantworten. Das hängt davon ab, um welche Art des Programms es sich handelt, wie "schnell" es sein muss und wieviel Aufwand man dabei betreiben darf.



  • wobei das Argument mit dem Geschwindigkeitsvorteil mittlerweile eigentlich fast wegfällt, da die Compiler schon wirklich gut optimieren. Und dass man da schnelleren Code schreibt als der Compiler muss man schon sehr sehr gut sein...

    Ich würd sagen einfach immer dann, wenn direkter Hardwarezugriff notwendig ist (SSE, MMX,...) und das Betriebsystem nicht die gewünschtne Funktionen zur Verfügung stellt (oder Treiber).
    Also so wirklich gibt es kaum Anwendungen wo ein Teil in assembler sinnvoll ist, wenn man für ein modernes Betriebsystem mit genügend Treibern etwas schreibt...


Log in to reply