Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Wichtig: Bevor Du wegen einem Problem mit der CC2 postest, stelle sicher, daß Du
die neueste OS-Version, die neuseste Compiler-DLL und die neuesten Modulversionen benutzt!
Beachte, daß sich auf der CD zur CC2-Unit/Station auch jetzt noch die ältesten Dateien befinden!
Es gelten folgende Anleitung und Regeln: Regeln CC2Net.de-Forum
Zurück zum Artikel  (Blaue Felder sind Pflichtfelder)


Name:   UserID: 
 E-Mail:
Kategorie
Betreff
Homepage:
Link-Titel:
Link-URL:
Cookie für Name, UserID, E-Mail, Homepage-URL setzen
(Erspart die Neueingabe bei Beiträgen und Antworten)
(Zum Löschen des Cookies hier klicken)
Ich nutze:
C-Control II Unit
C164CI-Controllerboard
C-Control II Station
CCRP5 mit CC2-Unit (Conrad Roboter)
CC2-Application-Board
CC2-StarterBoard
CC2-ReglerBoard
eigenes Board
original OS     OSOPT_V2     OSOPT V3.0 OSOPT V3.1

Kommentar:
Einfügen von HTML im Kommentar:

Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a>
Bild einfügen: <img src="BILDURL">
Text formatieren: <b>fetter Text</b>  <i>kursiver Text</i> <u>unterstrichener Text</u>
Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b>
C2 Quellcode formatieren: <code>Quellcode</code>
ASM Quellcode formatieren: <asm>Quellcode</asm>
(Innerhalb eines Quellcodeabschnitts ist kein html möglich.)
Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst !  

> Hallo Tomas, > > > > Ob man jetzt schreibt, > > > <code> if x tuedies();</code> > > > oder > > > <code> if x!=0 tuedies();</code> > > > ist völlige egal. Beides bedeutet das identische ! > > > Nur dauert die zweite Abfrage länger, weil unnötigerweise zwei VM-Codes mehr benötigt werden. > > > > wenn ich den Code des Compilers richtig verstehe, enthält der generierte VM-Code im zweiten Fall > > einen CAST-Operator. Im ersten, bei dem Literal, scheint INT default zu sein. > > Hier liegst zu ziemlich richtig. > CAST ist bei der VM kein richtiger Operator. Zumindest kein extra VM-Code. > Es ist eher ein Parameter, der dem eigentlichen Operator mit angegeben wird, damit > die VM-Routine "weiß" mit welchen Datentyp sie arbeiten soll. > > Ein CAST-Parameter ist nur bei folgenden VM-Codes möglich: > <code>const VM_ADD = ( VM_CODE_B | 5 ); > const VM_SUB = ( VM_CODE_B | 6 ); > const VM_MUL = ( VM_CODE_B | 7 ); > const VM_DIV = ( VM_CODE_B | 8 ); > const VM_MOD = ( VM_CODE_B | 9 ); > const VM_EQU = ( VM_CODE_B | 10 ); > const VM_NEQU = ( VM_CODE_B | 11 ); > const VM_HI = ( VM_CODE_B | 12 ); > const VM_HIS = ( VM_CODE_B | 13 ); > const VM_LO = ( VM_CODE_B | 14 ); > const VM_LOS = ( VM_CODE_B | 15 ); > const VM_AND = ( VM_CODE_B | 16 ); > const VM_NAND = ( VM_CODE_B | 17 ); > const VM_OR = ( VM_CODE_B | 18 ); > const VM_NOR = ( VM_CODE_B | 19 ); > const VM_XOR = ( VM_CODE_B | 20 ); > const VM_NXOR = ( VM_CODE_B | 21 ); > const VM_SHL = ( VM_CODE_B | 22 ); > const VM_SHR = ( VM_CODE_B | 23 ); > const VM_ASR = ( VM_CODE_B | 24 ); > const VM_ROL = ( VM_CODE_B | 25 ); > const VM_ROR = ( VM_CODE_B | 26 ); > const VM_MIN = ( VM_CODE_B | 27 ); > const VM_MAX = ( VM_CODE_B | 28 ); > > const CALC_INT_INT = 0; > const CALC_INT_LONG = 1; > const CALC_INT_FLOAT = 2; > const CALC_LONG_INT = 3; > const CALC_LONG_LONG = 4; > const CALC_LONG_FLOAT = 5; > const CALC_FLOAT_INT = 6; > const CALC_FLOAT_LONG = 7; > const CALC_FLOAT_FLOAT = 8;</code> > > Es heiß thier eben nur "CALC". > Dieser Parameter wird als Highbyte des VM-Codes angegeben. > Der VM-Code selbst belegt lediglich das Lowbyte. > > Es ist immer wieder interessant, in das Modul vmcodes.c2 rein zu schauen. > Denn daraus kann man einiges über die Funktion der VM lernen. ;-) > > MfG André H.
Dateianhang: (.gif, .png., .jpg, .zip, .rar)
max. 256kB
max. 256kB