Beiträge von Vernunftmensch im Thema „x-,y-,a- Register beim cc65 belegen, wie geht das ?“

    hi c64funker

    [offtopic]Programmieren in C und gleichzeitig in ASM mögen manche hier nicht. Ich schon. Als ich anfing hatte ich die selben Fragen wie Du. Außerdem scheinst Du mir sehr neugierig und wißbegierig. [/offtopic]

    Zu Deiner Frage:
    1. In Inlineassembler, damit ist __asm__ gemeint, kannst Du eigentlich alles machen, es sürzt nicht ab. Es sei denn Du bist in einer Whileschleife und ändest brutal x oder y, je nachdem. Oder Du schreibst etwas auf den Stack und holst es nicht wieder runter. Aber normalerweise gibt es da keine Probleme. Für Assemblerroutinen empfiehlt es sich immer eine ASM-Datei nebenher laufen zu lassen. Mit .export asm_beispiel vor so einer ASM-Routine funktioniert dann in C auch __asm__ ("jsr asm_beispiel"); wie Du es auch schnn versucht hast.

    2. Ansonsten ist C dumm wie Brot, wenn es um Register geht. Schreibst Du a=b/2. Naja, kannst ja ´mal selbst gucken, was der macht in der *.s-Datei, jedenfalls nicht:
    lda _b
    llsr

    3. Was mir an C sehr gut gefällt ist, daß Du sehr sauber zeitunkritische Sachen sauber aufschreiben kannst. Allerdings sind die Register nach einem C-Speung in ein Unterprogramm im Allgemeinen nur noch Asche. Daher rate ich, ASM nur zu benuten, wenn es wirklixh auf Zeit ankommt.

    4. Irgendeiner hat wohl komplett alle Basicbefehle in eine basic.h gepackt. Für den Anfang ist sowas eine tolle Sache. Da kannst Du zum Üben erstmal in Basic kleine Programme schreiben.

    5. Du findest einen Ordner samples in Deinem cc.... , da sind Beispielprogramme drinnen, gucke Dir die zum Einstieg an, das hat mir auch geholfen.