7.1.2. Instrukce

FIXME:

Abychom rozuměli zápisu kódu pro náš virtuální procesor, musíme si definovat jeho jazyk, instrukce. Jazky který používám je podobný jazyku symbolických adres, assembleru, a jazyku C. Zápis je řádkově orientovaný. Každý řádek může obsahovat návěští, label, oddělený od zbytku řádku dvojtečkou. Za týmto nepovinným návěštím následuje pole instrukcí. Povoluji zápis více než jedné instrukce, v tomto případě jsou od sebe vzájemně odděleny středníkem ; ;. Za polem instrukcí může být kometář ve stylu komentářů v shellu či perlu. zápis tedy vypadá takto:

label: instrukce; instrukce  # komentář

Instrukce přiřazení, tedy převodu hodnoty či hodnoty výrazu do registru nebo paměti je značena znakem → nebo ←, směr šipky označuje směr přesunu/zápisu hodnoty. Například přiřazení hodnoty 2 do registru W zapíši

2 → W

nebo

W ← 2

Aritmetické a logické operace značím jak jste zvyklí z jiných jazyků:

A + 4 → B; 

Čísla označují číselné hodnoty, konstanty. Názvy proměnných označují hodnoty v těchto proměnných uložené.

Odkaz na paměť se zapisuje do hranatých závorek. Zápis [W] tedy označuje hodnotu jenž se nachází v paměti na adrese jenž je uložena v registru W. Zápis [[W]] je pak označení hodnoty jenž se nachází na adrese uložené v paměti na adrese jenž je uložena v registru W. Zápis těchto dvou případů v jazyce C by vypadal takto *W pro první a **W pro druhý případ.

[A] [[W]]
(A) ((W))