Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: Assembler direkt in Basic Kategorie: Programmierung Basic (von Marko Kleistner - 24.03.2004 13:33)
 Als Antwort auf Assembler direkt in Basic von Medano C. Caserson - 22.03.2004 19:12
Hallo Medano,
hier zu Deinen Assembler-Fragen, die sich wohl auf Dietmars Tips und Tricks Dokument beziehen
(ASM-Code auf Stack pushen).

zu 1. Laut Adresse.txt Dokument liegt der Stack ab Adresse $91. Im Bsp. Programm wird durch den
Print-Befehl das ASM-Programm auf den Rechenstack geladen (getarnt als Programmtokens).
Der Sysbefehl springt dann an $91 Adresse. wo ja dann die ASM-Programm-Bytes liegen und führt diese
als Maschinencode aus.
Beim Assemblieren mußt Du natürlich org $91 angeben, um eventuelle relative Sprungadressen
im Listing des assemblierten Codes angegeben zu bekommen. Aus diesem Listung holst Du Dir dann
auch die Code-Bytes raus (wie im Bsp gezeigt, beginnend mit dem Ende des Codes) und trägst es im
CCBASIC-Programm ein. Ob aber ein bra oder bsr im Rechenstack zu irgendeiner Adresse anstandslos
funktioniert, weiß ich nicht (hab es nicht ausprobiert).

Wegen des Opcodes brauchst Du das Listing des assemblierten Programms: AS05 -l (generiert PASS2
Listing). Da stehen sie drin.

zu 2. Wie im Bsp von Dietmar angegeben, statt SYS $101 schreibe dann SYS $91. Wenn Du mit
org $91 beim Assemblieren die relativen Adressen berechnen hast lassen, das Laden wird automatisch
geschehen, dann kannst Du mit SYS $91 ins Maschinenprogramm springen und los gehts...

Grüsse,
Mak

> Hallo!
>
> Ich hab in der Info-Sammlung gelesen, dass es möglich ist, Assemblercode auch direkt in
> Basic einzufügen, der dann vom BS bei Gebrauch geladen wird.
>
> Nun meine zwei kurze Fragen: Dann muss doch nach dem Befehl a) ein anderer Speicherbereich
> als der 0101h angegeben werden; welcher ist das ? b) Werden doch dort Opcodes angegeben;
> woher erfahre ich nun den Opcode z.B. von "bclr" oder "bset" ? Kann jemand vielleicht sogar ein
> kleines Beispiel posten ?
>
> Zweite Frage: Ich kann doch nur ein Assemblerprogramm als "SYSCODE" angeben und per
> "SYS &H0101" aufrufen. Wie kann ich jetzt eigentlich nur eine dort abgespeicherte Funktion
> aufrufen ? Mit dem obrigen Befehl fängt doch der Assemblercode bei "opp 101" an. Also läuft
> der Code ab dieser Adresse!?
>
> Hoffe dringenst auf Antwort =)
>
> Medano C. Caserson

 Antwort schreiben

Bisherige Antworten:

Re: Assembler direkt in Basic (von Medano C. Caserson - 24.03.2004 14:05)