Der Nachfolger des WDR-Computerclub mit Wolfgang Back und Wolfgang Rudolph - ...und immer ein Bit übrigbehalten!


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: Unterschiede M-Unit alt und 1.2 ? Kategorie: C-Control I V1.2/2.0 (von Heiner - 14.03.2008 23:07)
 Als Antwort auf Unterschiede M-Unit alt und 1.2 ? von Heiner - 13.03.2008 9:58
Heiner nutzt:  CC1-M-Unit V1.1, CC1-M-Unit V1.2/2.0, C-Control 2
Hallo,

ich habe den "Fehler" gefunden.
Ich benutze in meinem Progrämmchen mehrfach den Ausdruck

if Variable then Anweisung

Dabei ist die Variable ein Bytewert.
Der Sinn sollte klar sein.
Wenn der Ausdruck wahr ist, d. h. die Variable hat einen Wert abweichend von 0, wird die
Anweisung ausgeführt.
Für mein Verständnis eine absolut übliche Vorgehensweise, die auch leicht in Assembler umzu-
setzen ist. Bei der M-Unit der alten Bauart funtkioniert dies auch seit Jahren ohne Probleme.
Bei der M-Unit 1.2 scheint dieser Ausdruck allerdings niemals wahr zu werden.
Die Anweisung wird also niemals ausgeführt bzw. ein eventuell vorhandenes else wird immer ausgeführt.
Durch dieses Verhalten hat mein Programm natürlich sehr seltsame Dinge produziert.

Wird die oben angegebene Zeile ersetzt durch:

if Variable >0 then Anweisung

funktioniert wieder alles wie vorgesehen.
Der Compiler erzeugt dann einen etwas anderen Code, was schon dadurch ersichtlich wird, dass
das Eergebnis einige Bytes größer wird.

In meinen Augen ein echter Bug.


Gruß
Heiner

 Antwort schreiben

Bisherige Antworten: