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: CCBASIC-Programm in Maschinensprache umwandeln Kategorie: Verschiedenes (von Stefan Tappertzhofen, Homepage - 19.01.2005 11:27)
 Als Antwort auf Re: CCBASIC-Programm in Maschinensprache umwandeln von Dietmar - 19.01.2005 1:57
Hallo,

> Das mag für Deinen Compiler vielleicht zutreffen, bei CCBAS2MC ist das aber ganz und gar nicht der > Fall. Wie in der Anleitung steht, läßt sich anhand einer Konfigurationsdatei eindeutig festlegen, wie
> die CCBASIC-Token in Assemblerquellcode umgewandelt werden.


define i1 byte
define i2 byte
define i3 byte
define p port[1]

#loop
if p = on then goto raus
if i1 < 255 then goto weiter
i2 = i2 + 1
i1 = 0
#weiter
i1 = i1 + 1
goto loop

#raus


Das Problem liegt am Aufruf des CCBAS Compilers von Conrad. CCBAS2MC ersetzt jedes Token des CCBAS Kompilats in Assembler um. Der CCBAS Compiler anderseits ist ein _Compiler_ und jeder Compiler erzeugt in der Praxis Codesegemente, die nicht effizient sind (vlg. zum Beispiel "Compilerbau Teil 2" Alfred V. Aho, Ravio Sethi, Jeffry D. Ullman, Kapitel 10 "Code-Optimierung", S. 715ff oder gängige Informatik-Scripte zum Thema "Compilerbau"). Zum Beispiel erzeugt der CCBAS Compiler einen ELSE Zweit, auch wenn diese nicht verwendet wird (ich weiss, CCBAS2MC kommentiert diesen dann aus, andererseits ruft der die C-Control Betriebssystemroutienen auf, weißt Du wieviele Takte die zum Ablaufen brauchen?). Das ist halt normal bei einem Compiler, der eben eine Hochsprache in Byte Code übersetzt.

Im Übrigen erzeugt CCBAS und der BASIC++ Compiler bei dem Beispiel oben genau den gleichen Code.

Die Realisierung eines solchen Timers in Assembler ist keine schlechte Idee, doch sollte man grade hier wo es auf die genaue Taktzahl ankommt keinem Compiler vertrauen.

Gruß,

Stefan

Meine Homepage: http://www.fdos.de/ccbpp

 Antwort schreiben

Bisherige Antworten:

Re: CCBASIC-Programm in Maschinensprache umwandeln (von Dietmar - 19.01.2005 17:41)
    Re: CCBASIC-Programm in Maschinensprache umwandeln (von Stefan Tappertzhofen - 19.01.2005 19:40)
        Re: CCBASIC-Programm in Maschinensprache umwandeln (von Dietmar - 19.01.2005 21:53)
            Re: CCBASIC-Programm in Maschinensprache umwandeln (von Stefan Tappertzhofen - 20.01.2005 9:45)
                Re: CCBASIC-Programm in Maschinensprache umwandeln (von Michael - 25.01.2005 9:45)