{{predmet|Formální metody specifikace|David Bednárek|TIN043}}

## Zkouška ##

Zkouška je ústní a typicky společná s dalšími Bednárkovými zkouškami. Bednárek zadá nějakou situaci a úkolem zkoušeného je napsat příslušnou specifikaci. Jazyk specifikace je libovolný, ale všechna (nebo téměř všechna) zadání jdou popsat v Zetku. Po napsání specifikace si ji Bednárek prohlédne, okomentuje a bez nějakých dalších průtahů oznámkuje.

Pokud chcete přípravu na zkoušku vzít pragmaticky, naučte se tedy jen jazyk Z.

### Jedno konkrétní zadání i s řešením ###

#### Zadání ####

Máme CPU se dvěma registry - IP (adresa právě vykonávané instrukce) a A (akumulátor). Oba mají 32 bitů. CPU je propojeno 32-bitovou sběrnicí s pamětí, schopnou adresovat 2<sup>27</sup> 32-bitových hodnot.

CPU umí následující instrukce:

<table border>
<tr><th>LD *A*, \[*adr*]</th><td>načte obsah paměti na adrese *adr* do registru *A*</td></tr>

<tr><th>ST \[*adr*], *A*</th><td>uloží obsah paměti z registru *A* na adresu *adr*</td></tr>
<tr><th>ADD *A*, \[*adr*]</th><td>přičte k registru *A* hodnotu v paměti na adrtese *adr*</td></tr>

<tr><th>JZ *A*, *adr*</th><td>je-li *A* rovno 0, skočí na adresu *adr*, jinak normálně pokračuje</td></tr>
<tr><th>JMP *adr*</th><td>skočí na adresu *adr*</td></tr>

</table>

Instrukce jsou dlouhé 32 bitů, prvních 5 bitů je opcode, zbylých 27 určuje adresu v paměti (operand).

Specifikujte:

* paměť
* CPU
* celkový stav
* krok procesoru

#### Řešení ####

\[DWORD]

### Další zadání ###

#### Výtah ####

#### Instukce ####

#### Další varianta instrukcí ####

#### Relační databáze ####

#### Křižovatka ####

#### Zkouskove terminy ####

## Užitečné odkazy ##

* 
* 
* 
* 
* 
* 
* 
* 
* 

* 

