Virtuální procesor

Z ZděchovNET
Verze z 16. 5. 2012, 06:55, kterou vytvořil Chronos (diskuse | příspěvky) (Založena nová stránka: ==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 bl…)
(rozdíl) ← Starší verze | zobrazit aktuální verzi (rozdíl) | Novější verze → (rozdíl)
Skočit na navigaci Skočit na vyhledávání

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