Virtuální procesor
Koncept
- Je použit lineárně adresovatelný paměťový prostor, každý buňka je velikosti Bajt
- U všech operací, kde je to žádoucí, jsou podporovány blokové operace
- Instrukce mají až dva parametry a každý z nich může být definován jako blok (adresa + délka) nebo hodnota
- U každého bloku může být definováno zda inkrementovat vzestupně nebo sestupně
Instrukční sada
- Aritmetické
ADD SUB MUL DIV MOD
- Logické
- Bitové
SHL SHR OR AND XOR
- Řízení běhu
NOP - žádná operace JP
- Zásobník
registr SP PUSH - vloží data na zásobník POP - načte data ze zásobníku CALL RET
- Přesuny
COPY - kopíruje data XCH - vymění data CMP
- Vnější zařízení
IN - načte data ze vstupu OUT - zapíše data na výstup
Příklady
Kód | Popis |
---|---|
COPY (DEST):10, (SOURCE):10 |
Kopie bloku 10 bajtů |
COPY (DEST):10, (SOURCE):2 |
Kopie bloku 2 bajtů do bloku 10 bajtů, blok 2 bajtů se opakuje |
COPY (DEST):10, 1 |
Nastavení bloku 10 bajtů na hodnotu 1 |
ADD (DEST):10, 1 |
Přičtení hodnoty 1 do jednotlivých bajtů v bloku 10 bajtů |
ADD (DEST):10, 1:10 |
Přičtení hodnoty 1 do prvního bajtu v cílovém bloku |