
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
Hallo zusammen um der Sache mit den Zeigern auf den Grund zu gehen, habe ich ein kleines Testprogramm sowohl mit Basic++ als auch mit OCBASIC und Option CCBAS übersetzt. Es zeigen sich keine Unterschiede zwischen dem erzeugten Tokencode. Allerdings existiert in Basic++ offensichtlich ein Bug beim Adreßoperator "^". Der sollte die Adresse und nicht den Inhalt einer Variable zurückliefern. Der OCBASIC-Code läuft auf der Open-Micro und sollte auch auf der M-Unit ab Version 2.03 funktionieren. Die Open-Micro liefert beim OCBASIC-Code als Ausgabe die vier Zahlen 9, 20, 8 und 9 auf einem Terminal. Mich würde interessieren, was die V2 bei diesem einfachen Programm ausgibt. Basic++: define ^a byte define b byte 0004: 03 00 07 GOTO 0007 0007: 16 09 PUSH BYTE[10] a=^b 0009: 19 08 POP BYTE[9] 000b: 14 00 14 PUSH 20 @a=20 000e: 16 08 PUSH BYTE[9] 0010: 24 02 HANDSHAKE ON 0012: 16 08 PUSH BYTE[9] print a 0014: 1e PRINT STACK 0015: 1f 0d 0a 00 PRINT 13,10,0 0019: 16 08 PUSH BYTE[9] print @a 001b: 24 00 HANDSHAKE OFF 001d: 1e PRINT STACK 001e: 1f 0d 0a 00 PRINT 13,10,0 0022: 16 08 PUSH BYTE[9] print ^a 0024: 1e PRINT STACK 0025: 1f 0d 0a 00 PRINT 13,10,0 0029: 16 09 PUSH BYTE[10] print ^b 002b: 1e PRINT STACK 002c: 1f 0d 0a 00 PRINT 13,10,0 0030: ff END end OCBASIC mit Option CCBAS: option ccbas define ^a byte[9] define b byte[10] 0004: 03 00 07 GOTO 0007 goto start #start 0007: 14 00 09 PUSH 9 a=^b 000a: 19 08 POP BYTE[9] 000c: 14 00 14 PUSH 20 @a=20 000f: 16 08 PUSH BYTE[9] 0011: 24 02 HANDSHAKE ON 0013: 16 08 PUSH BYTE[9] print a 0015: 1e PRINT STACK 0016: 1f 0d 0a 00 PRINT 13,10,0 001a: 16 08 PUSH BYTE[9] print @a 001c: 24 00 HANDSHAKE OFF 001e: 1e PRINT STACK 001f: 1f 0d 0a 00 PRINT 13,10,0 0023: 14 00 08 PUSH 8 print ^a 0026: 1e PRINT STACK 0027: 1f 0d 0a 00 PRINT 13,10,0 002b: 14 00 09 PUSH 9 print ^b 002e: 1e PRINT STACK 002f: 1f 0d 0a 00 PRINT 13,10,0 0033: ff END end Ohne "Option CCBAS" ist der OCBASIC-Code übrigens rund ein Drittel kleiner, aber dafür nur auf den OM-Kontrollern lauffähig. Viele Grüße Dietmar Meine Homepage: http://ccintern.dharlos.de |
| Antwort schreiben |