Testtool für Assembler-Programme gesucht

There are 26 replies in this Thread which has previously been viewed 2,011 times. The latest Post (June 11, 2025 at 10:45 PM) was by MrSterlingBS.

  • gabs nicht in der 64er Spezial einen Assembler mit Einzelschritt simulator?

    Stefan

    (Uiuiui... kann auch Input64 gewesen sein....)

  • Ja, den gab es. Ich finde ihn jetzt auf Anhieb auch nicht, aber das Thema hatten wir vor etwa einem Jahr. Aber das Ding ist nicht wirklich ein Ersatz für einen richtigen Debugger mit Register- und Memoryanzeige, wie mit C64Studio und Vice oder ähnlichem.

  • Was passiert beim ROL oder ROR, ASL oder LSR und welche Flags werden u. U. gesetzt?

    Findest Du alles hier:

    Please login to see this link.

    Aber ich muss mir, beispielsweise für eine 16bit-Multiplikation, einiges wieder erarbeiten.

    Wenn's schnell sein soll und beide Faktoren unbekannt sind, wird das üblicherweise mit Differenzen von Quadratzahlen, letztere aus Tabellen, ausgerechnet. Bitshiften und Zusammenaddieren ist langsamer.

    Ohhhgottt, was hab ich losgetreten. [...]

    Von deiner Seite kommt halt relativ wenig rüber mit welcher konkreten Aufgabenstellung Du gerade wieder einsteigst. Da mußt Du dich nicht wundern, wenn dir da die ganze Bandbreite an Werkzeugen präsentiert wird. Die Leutz sind sich auch nicht zu schade, eigene Werkzeuge zu bauen, wenn Ihnen das, was "auf dem Markt" ist im Moment für den eigenen Anspruch nicht taugt.

    Solche flapsigen Bemerkungen helfen dir dann aber auch nicht weiter und kommen bei dem einen oder anderen auch gerne schon mal in den falschen Hals.

    Pro-Tip: such dir eins von den vorgestellten Tools aus, schau ob dir das was bringt, und dann kannst Du gerne in ein paar Wochen mit einem neuen, selbstgeschriebenen Programm daherkommen, das zeigt, daß Du was gelernt hast. Merci.

  • Aber ich muss mir, beispielsweise für eine 16bit-Multiplikation, einiges wieder erarbeiten.

    Wenn's schnell sein soll und beide Faktoren unbekannt sind, wird das üblicherweise mit Differenzen von Quadratzahlen, letztere aus Tabellen, ausgerechnet.

    Hallo Mike,

    hast Du nen Beispiel oder Link zu der Variante parat?

    Grüße

    Jörg

  • hast Du nen Beispiel oder Link zu der Variante parat?

    Von hier:

    Please login to see this link.

    (... leider momentan hinter einer Anmeldung, da unlängst eine Bot-Armee einen massiven Angriff auf das Denial-Forum gefahren hat ...)

    Die beiden je 512 Bytes großen Tabellen 'abs_table_lo' und 'abs_table_hi' werden wie folgt initialisiert:

    Code
    FOR X=0 TO 511
    SQ=INT(X*X/4)
    HI=INT(SQ/256)
    LO=SQ-256*HI
    POKE abs_table_lo+X,LO
    POKE abs_table_hi+X,HI
    NEXT

    Das ist bereits für vorzeichenbehaftete Zahlen. Wenn man den Teil von "BIT zp_factor_1" bis ".Multiply_04" wegläßt, gilt die Routine für vorzeichenlose Zahlen.

    Die Routine entnimmt die beiden (8-Bit-)Faktoren aus zwei Zeropage-Adressen und speichert das (16-Bit-)Ergebnis ebenfalls in zwei Zeropage-Adressen. Viele Beispiele im Netz erwarten die Eingabe in den CPU-Registern und geben das Ergebnis ebenfalls in CPU-Registern zurück. Der Kern der Multiplikationsroutine läßt sich durchaus auch auf diese Weise implementieren, wobei die Eingabewerte in den meisten praktischen Fällen nicht bereits zur Hand sind, sondern ohnehin erst noch aus dem Speicher abgerufen werden müssen. Es ist ebenso unwahrscheinlich, daß das Ergebnis direkt von einer anderen Multiplikation verarbeitet wird, sodaß es auch erstmal wieder im Speicher abgelegt werden muß. Die Ein-/Ausgabeverarbeitung dieser anderen Routinen erhöht deren Zyklenanzahl um weitere 12 Zyklen (2x LD% ZP, 2x ST% ZP, % ^= beliebiges CPU-Register)! Für die obige Routine benötigt der vorzeichenlose Teil 50 oder 53 Zyklen; je nach Vorzeichen benötigt die gesamte Routine ohne RTS zwischen 62 und 71 Zyklen, durchschnittlich 66,5 Zyklen.

  • Hi,


    wenn ich die Nachrichten richtig verfolgt habe wurde noch nicht der online Assembler von Nick Morgan genannt. Fürs wieder reinkommen finde ich den sehr gut.

    Please login to see this link.