====== 7. I/O prostor mapovaný do paměti ======
* pro vyučující: [[..:..:internal:tutorials:07:start|cvičení 7]]
===== Osnova cvičení =====
- zápis na I/O bránu
- čtení z I/O brány
===== Co bych si měl na cvičení zopakovat/připravit =====
- MipsIt simulátor
- rozumět programům z předchozích cvičení
===== Náplň cvičení =====
Cílem je dostat se z procesoru na periferní zařízení.
K řešení úkolů můžete použít následující šablonu:
#define t0 $8
#define t1 $9
#define t2 $10
#define s0 $16
#define s1 $17
#define s2 $18
.globl start
.set noat
.set noreorder
.ent start
start:
// Zde je místo pro Váš vlastní kód...
nop
.end start
===== Úkoly =====
Pracujte v simulátoru Mips.exe. Osmibitový I/O port je mapován do paměti od adresy 0xBF900000.
==== Zápis hodnoty na výstupní port ====
- Napište program, který zobrazí 8bitové číslo z registru ''s1'' na výstupní periferii (LED).
- Rozšiřte program tak, aby v nekonečné smyčce stále dokola zobrazoval na výstupu sekvenci následujících čísel.
pole:
.word 1, 2, 4, 8, 16, 32, 65, 48, 66, 51, 54, 65, 80, 79, 1, 2, 3
==== Čtení ze vstupního portu ====
- Napište program, který do registru ''s1'' načte 8bitovou hodnotu ze vstupní periferie (přepínače).
- Rozšiřte program tak, že ze vstupu přečte číslo a na výstup zobrazí hodnotu z o odpovídající pozice ve výše uvedeném poli. Pokud je zadáno číslo, překračující rozsah pole, zobrazí program na výstupu samé jedničky (rozsvítí všechny LED).