Utasítások, vezérlési szerkezetek
Értékadások, utasítások
Értékadásnak a STORE utasítás felel meg, ami egy egész számot tárol el a megadott
néven.
A CESIL nyelv összesen 14 utasitást tartalmaz. Ezek az alábbiak:
- Memória műveletek
-
- LOAD számkonstans, LOAD változónév
- Betölt az akkumulátorba egy számkonstanst vagy egy változót amit korábban elmentettünk
a STORE parancssal.
- STORE változónév
- Elmenti az akkumulátor tartalmát az adott néven.
- IN
- Betölti az akkumulátorba a futási adathalmaz következő elemét.
- Aritmetikai műveletek
-
- ADD számkonstans, ADD változónév
- Az akkumulátorhoz hozzáadja a számkonstanst vagy a változóban tárolt értéket.
- SUBTRACT számkonstans, SUBTRACT változónév
- Az akkumulátorból kivonja a számkonstanst vagy a változóban tárolt értéket.
- MULTIPLY számkonstans, MULTIPLY változónév
- Az akkumulátor értékét megszorozza a számkonstanssal vagy a változóban tárolt értékkel.
- DIVIDE számkonstans, DIVIDE változónév
- Az akkumulátor értékét elosztja a számkonstanssal vagy a változóban tárolt értékkel.
Az értéket kerekíti.
- Ugrási műveletek
-
- JUMP cimke
- A vezérlés a megadott cimkénél folytatódik.
- JIZERO cimke
- Ha az akkumulátor értéke nulla, akkor a megadott cimkére ugrik a vezérlés.
- JINEG cimke
- Ha az akkumulátor értéke negatív, akkor a megadott cimkére ugrik a vezérlés.
- Kimeneti műveletek
-
- PRINT szöveg
- Kiírja az adott szöveget a képernyőre.
- OUT
- Jobbra igazítva kiírja az akkumulátor tartalmát.
- LINE
- Új sorba helyezi a kurzort.
- Vezérlési utasítások
-
- HALT
- Befejezi a program futását.
Szekvencia
Az utasítássorozatban az utasítások egymás után írása a szekvencia.
Elágazás
Az elágazás konstrukciót a nyelv nem tartalmazza, de ki lehet váltani cimkékkel és
ugró utasításokkal.
Példa: if (akkumulátor == 0) then {print "Az akkumulator 0"} else {print "Nem nulla az akkumulátor"}
IF JIZERO THEN
JUMP ELSE
THEN PRINT "Az akkumulator 0"
JUMP ENDIF
ELSE PRINT "Nem nulla az akkumulátor"
ENDIF
Ciklus
A nyelv, hasonlóan az elágazáshoz, nem támogatja közvetlenül a ciklusokat, de cimkékkel és ugró utasításokkal
ez is megoldható.
Példa: for( int IVALT = 0; IVALT < 10; ++IVALT) PRINT "A ciklusvaltozo: %d" IVALT
LOAD 0
STORE IVALT
FOR LOAD IVALT
SUBTRACT 10
JIZERO ENDFOR
PRINT "A ciklusvaltozo: "
LOAD IVALT
OUT
LINE
ADD 1
STORE IVALT
JUMP FOR
ENDFOR
Példa: while(IVALT > 0) { IVALT-=1 }
LOAD 100
STORE IVALT
WHILE LOAD IVALT
JINEG ENDWHILE
SUBSTRACT 1
STORE IVALT
JUMP WHILE
ENDWHILE
Vezérlésátadó utasítások
A CESIL nyelvben 3+1 vezérlésátadó utasítás van. A HALT befejezi a program futását. Az ugró utasítások a
JIZERO, JINEG és a JUMP. A JIZERO akkor ugrik, ha az akkumulátor tartalma nulla. A JINEG akkor
ugrik, ha az akkumulátor értéke negatív. A JUMP feltétel nélkül ugrik a megadott cimkére.