• Danke Oscar, es klappt!

    Ich hatte mich schon gewundert:

    Ich hatte sowohl hinter dem Befehl
    mov eax,0 ;counter pixel with Color
    als auch hinter dem Befehl
    cmp ebx,[edi+ecx*4] ;is dword=color ? (4 Bytes per pixel)
    je einen Debuggeraufruf _ASMDBG_() eingefügt.
    Der erste wurde angezeigt und bevor der zweite kam schmierte das Programm ab.
    Eigentlich hätte ich das genauer untersuchen müssen.
    Aber ich habe gedacht, dass ich - als Assemblereinsteiger - etwas falsch gemacht habe.

    Und Andy muss sich wirklich nicht innerlich zerfleischen. Ein Programmierer, der keine Fehler macht, wäre ein Monster.
    Jedenfalls werden mir die Programmbeispiele von Andy und auch von Marc sehr bei meinem Studium des X86-Assemblers sehr helfen.
    Bestimmt komme ich bald mit weiteren diesbezüglichen Fragen. Dann werde ich aber ein neues Thema aufmachen.

    Ich möchte mich sehr bei Euch dreien bedanken!

  • Und Andy muss sich wirklich nicht innerlich zerfleischen.

    Das tut er definitiv nicht, glaub mir das :o)


    Ich hatte sowohl hinter dem Befehl
    mov eax,0 ;counter pixel with Color
    als auch hinter dem Befehl
    cmp ebx,[edi+ecx*4] ;is dword=color ? (4 Bytes per pixel)
    je einen Debuggeraufruf _ASMDBG_() eingefügt.

    GENAU SO macht man das, da sollten sich viele andere, die sich sicherlich nicht mehr als "Anfänger" bezeichnen, eine dicke Scheibe abschneiden!
    Fehler suchen, Fehler lokalisieren, Fehler finden, Fehler ausmerzen, DAS ist imho Programmieren und nicht etwa stumpfsinniges C&P von "ausgesuchten Bibliotheken"...

    Dass "Programmierer" nicht in der Lage sind, bereits erkannte Fehler dauerhaft zu fixen ist das elende Ergebnis....

  • hmm, ich sollte einen eigenen Thread für AssembleIt2_64 aufmachen, ich fixe andauernd irgendwelche Kleinigkeiten...

    Hier mal eine überarbeitete Funktion
    - Regexe geändert fürs Entfernen der Kommentare
    - das benötigte ORG fürs debuggen wird jetzt automatisch eingefügt, man kann also einfach _asmdbg_() oder bspw. _asmdbg_("$eax=20") in den Code einfügen

    assembleit2_64.au3

    //EDIT
    wenn jemand Ideen hat, immer her damit, btw. die "Debugger-GUI" müsste dringend überarbeitet werden^^

    ciao
    Andy


    "Schlechtes Benehmen halten die Leute doch nur deswegen für eine Art Vorrecht, weil keiner ihnen aufs Maul haut." Klaus Kinski
    "Hint: Write comments after each line. So you can (better) see what your program does and what it not does. And we can see what you're thinking what your program does and we can point to the missunderstandings." A-Jay

    Wie man Fragen richtig stellt... Tutorial: Wie man Script-Fehler findet und beseitigt...X-Y-Problem

    Einmal editiert, zuletzt von Andy (29. Dezember 2015 um 17:03)

    • Offizieller Beitrag

    Die Funktion "int2bin" in "asmdbg64_neu.au3" kann man noch etwas optimieren (ternärer Operator):