NAR 2 - NAR 2

NAR 2 (srbština Nastavni Računar 2, en. Vzdělávací počítač 2) je teoretický model 32-bit slovní počítač vytvořený Matematickou fakultou UK Univerzita v Bělehradě profesor Nedeljko Parezanović jako vylepšení svého předchůdce, NAR 1. Byl použit pro Montážní jazyk a Počítačová architektura kurzy. Slovo „nar“ znamená Granátové jablko v srbština. Bylo vytvořeno mnoho simulátorů NAR 2 - například jeden byl pojmenován „Šljiva“ (en. švestka ) jak toto ovoce roste Srbsko, zatímco „nar“ nikoli.

Struktura pokynů

NAR 2 procesor používá 32bitová strojová slova. Každý Stroj návod obsahuje:

Registry

NAR 2 má čtyři registry:

Mnemotechnika

K dispozici byly následující operační kódy (skutečné kódy nebyly specifikovány, pouze mnemotechnické pomůcky):

Přístup do paměti / registru

  • MUA (sr. Memorija U Akumulátor, en. Memory Into Accumulator) načte hodnotu do akumulátoru
  • AUM (sr. Akumulátor U Memoriju, en. Accumulator Into Memory) ukládá obsah akumulátoru
  • PIR (sr. Punjenje ndeksnog Registra, en. Load Index Register) Načte hodnotu do indexového registru

Celé číslo aritmetické

Poznámka: všechny mnemotechnické pomůcky v této skupině končí písmenem „F“ označujícím „Fiksni zarez“ (en. Pevný bod) aritmetický. To však platí pouze pro sčítání, odčítání a negaci (změna znaménka). Násobení a dělení předpokládá, že „bod“ je fixován napravo od nejméně významného bitu - to znamená, že čísla jsou celá čísla.

  • SABF (sr. SabEri u Fiksnom zarezu, en. Add, Fixed Point) - přidá parametr do akumulátoru
  • ODUF (sr. Oduzmi u Fiksnom zarezu, en. Subtract, Fixed Point) - odečte parametr z akumulátoru
  • MNOF (sr. Množi u Fiksnom zarezu, en. Multiply, Fixed Point) - Násobí akumulátor s parametrem
  • DELF (sr. Deljá u Fiksnom zarezu, en. Divide, Fixed Point) - Rozdělí akumulátor podle parametru
  • PZAF (sr. Promeni Znak Akumulatora u Fiksnom zarezu, en. Change the Sign of Accumuator, Fixed Point) - Změní (převrátí) znaménko akumulátoru

Aritmetika s plovoucí desetinnou čárkou

  • SAB (sr. SabEri, en. Přidat) - přidá parametr do akumulátoru
  • ODU (sr. Oduzmi, en. Odečíst) - odečte parametr z akumulátoru
  • MNO (sr. Množi, en. Násobit) - Násobí akumulátor s parametrem
  • DEL (sr. Deli, en. Divide) - Rozdělí akumulátor podle parametru
  • PZA (sr. Promeni Znak Akumulatora, en. Change the Sign of Accumuator) - Změní (převrátí) znamení akumulátoru

Bitové / logické

Poznámka: výše uvedené operace jsou všechny bitový. Jejich jména naznačují, že jsou čistě logické operace ale lze je vysvětlit, jako by fungovaly na vektorech bitů a samostatně aplikovaly logické operace na každou dvojici bitů.

Logické posuny

  • POL (sr. Pomeri Levo, en. Shift Left) - posune bity akumulátoru doleva
  • LUSK (sr. Pomeri Desno, en. Shift Right) - posune bity akumulátoru doprava

Řízení toku

  • NES (sr. Negativni Skok, en. Negative Jump) provede a podmíněný skok na adresu určenou parametrem, pokud je aktuální hodnota akumulátoru záporná
  • BES (sr. Býtzuslovni Skok, en. Unconditional Jump) provede bezpodmínečný skok na adresu určenou parametrem
  • NUS (sr. NuLos Angeles-Skok, en. Zero Jump) provádí a podmíněný skok na adresu určenou parametrem, pokud je aktuální hodnota akumulátoru nulová
  • ZAR (sr. Zaustavi Računar, en. Stop the Computer) zastaví jakékoli další zpracování; toto je jediná instrukce, která parametr ignoruje.

Standardní syntaxe jazyka sestavení

Syntaxe jazyka sestavení NAR 2 byla navržena tak, aby byla přímá a snadno analyzovatelná. Každý programový řádek může obsahovat až jednu instrukci specifikovanou následovně:

  1. Instrukční mnemotechnická pomůcka
  2. Mezery, pokud instrukce určuje indexové registry, režim adresování nebo parametr a poté oddělené čárkami:
    1. Název rejstříku rejstříku, je-li použit
    2. Názvy příznaků režimu adresování (oddělené také čárkami)
    3. Hodnota parametru

Ukázkový kód:

  aum X1, p, 0 mua n, 1 aum 15  pir X1, p, n, 1 mua X1, p, n, 0 oduf n, 1 oduf X2, p, n, 0

Režimy adresování

Se čtyřmi bity pro výběr režimu adresy (P, R, I a N - indexované, relativní, nepřímé a okamžité) mohou instrukce NAR 2 specifikovat 16 různých režimů adresování, ale ne všechny mají smysl ve všech instrukcích. V následující tabulce:

  • M [x] určuje 32bitovou hodnotu (obsah) umístění paměti x
  • BN určuje počitadlo programu
  • p určuje 16bitový podepsaný parametr v umístění
  • Xi určuje indexový registr vybraný údaji v místě
  • f () je funkce „efektivní hodnoty“ používaná pro nepřímé adresování (viz podrobnosti níže):
Addr. vlajkyTyp instrukce
PRNDataSkok
 -  -  -  - M [p]str
 -  -  - Nstrstr
 -  -  - M [f (M [p])]f (M [p])
 -  - Nf (M [p])f (M [p])
 - R -  - M [BN + p]BN + str
 - R - NBN + strBN + str
 - R - M [f (M [BN + p])]f (M [BN + p])
 - RNf (M [BN + p])f (M [BN + p])
P -  -  - M [Xi + p]Xi + str
P -  - NXi + strXi + str
P -  - M [f (M [Xi + p])]f (M [Xi + p])
P - Nf (M [Xi + p])f (M [Xi + p])
PR -  - M [BN + Xi + p]BN + Xi + str
PR - NBN + Xi + strBN + Xi + str
PR - M [f (M [BN + Xi + p])]f (M [BN + Xi + p])
PRNf (M [BN + Xi + p])f (M [BN + Xi + p])

Poznámka 1: Příznak „N“ (okamžitý) nemá žádný vliv na pokyny skoku (řízení toku), protože procesor nemůže skočit na zadanou hodnotu, ale pouze na adresu paměti.

Víceúrovňová paměť nepřímá

Podporuje NAR 2 víceúrovňová paměť nepřímá režim adresování. Umístění je nejprve vybráno „pohledem“ na příznaky P (indexované) a R (relativní k čítači programu). Poté, když je detekován I (nepřímý) příznak, je načteno 32bitové slovo z dosud vypočteného paměťového místa a výpočet je restartován (včetně všech příznaků režimu adresování, výběru indexového registru a hodnoty parametru - pouze „opcode“ je vynecháno). Tedy následující program, pokud je načten na paměťovém místě 0 a spuštěn:

mua I, 0; Paměť do akumulátoru, nepřímá, z umístění 0

... zmrazí NAR 2 ve smyčce pro výpočet nekonečné adresy:

  1. „I, 0“ určuje, že skutečná adresa se má načíst z paměťového místa 0
  2. Načte se umístění paměti 0. Znovu se přečte „I, 0“
  3. „I, 0“ určuje, že skutečná adresa se má načíst z paměťového místa 0
  4. Načte se umístění paměti 0. Znovu se přečte „I, 0“
  5. „I, 0“ určuje, že skutečná adresa se má načíst z paměťového místa 0
  6. Načte se umístění paměti 0. Znovu se přečte „I, 0“
  7. ...

Všimněte si, že:

mua R, I, 0; Paměť do akumulátoru, relativní, nepřímá, z umístění BN + 0

se zdá být obecnější (může zmrazit NAR 2 z libovolného místa), ale to záleží na tom, kdy je hodnota registru BN zvýšena / změněna.

Otázka zacházení s příznakem „N“ (okamžitým) za přítomnosti příznaku I (nepřímého) je otevřená, protože situace je poněkud nejednoznačná - to znamená, zda respektovat hodnotu příznaku uvedenou v původní instrukci nebo v nepřímo zadaná (vyhledaná) adresa vede ke konfliktu. Tabulka výše představuje první případ, který ukazuje různé režimy adresování dosažitelné tímto způsobem.

Čtení hodnot z indexových registrů

NAR 2 má pokyny k inicializaci hodnoty konkrétního indexového registru (mnemotechnická pomůcka "PIR"). Nemá však speciální pokyny ke čtení hodnot indexových registrů. Toho je dosaženo použitím indexovaných a okamžitých (P, N) příznaků režimu adresování, například:

mua Xi, P, N, n; Paměť do akumulátoru, indexovaná, okamžitá, 0

... což v podstatě vloží Xi + n do akumulátoru. Pro n = 0 se to změní na instrukci "načíst hodnotu registru indexu do akumulátoru".

Viz také

  • NAR 1
  • MMIX, další procesor navržený profesorem, který studentům pomáhá učit se.

externí odkazy