Obvody paměti programu, význam přímého a nepřímého adresování, obvod čítače programu

Obvody paměti programu, význam přímého a nepřímého adresování, obvod čítače programu

Paměť programu

Paměť programu je nepostradatelným prvkem mikrořadiče. Paměť je nezbytná jednak k uložení vlastního programu v podobě instrukcí, které řídí činnost mikrokontroléru, a dále dat, se kterými mikrokontrolér pracuje. Ačkoliv může být paměť programu a dat sdílena a namapována do jediného adresního prostoru (jako je tomu např. u PC – Von Neumannova architektura), u mikrokontrolérů je paměť pro program a data často oddělená (Harvardská architektura). Programová paměť mikrokontroléru bývá dnes obvykle realizována jako paměť FLASH, kterou lze v případě potřeby snadno přeprogramovat. Jako datovou paměť pro uložení proměnných, výsledků aritmeticko-logických operací a dalších dat využívá mikrokontrolér statickou paměť RAM, u níž informace zaniká s vypnutím napájecího napětí. Mikrokontroléry bývají navíc často vybaveny ještě menší datovou pamětí typu EEPROM, která slouží k zálohování důležitých dat. Kapacita programové paměti bývá přibližně 1 kB až 256 kB, kapacita datové paměti bývá nižší a pohybuje se mezi 32 byty u nejjednodušších mikrokontrolérů až 16 kB (a více) u složitých mikrořadičů.

Adresovací módy datové paměti

V mikropočítačové technice rozeznáváme pět adresovacích způsobů datové paměti, a to:

  • přímé adresování;
  • nepřímé adresování;
  • nepřímé adresování s posunutím;
  • nepřímé adresování s dekrementací ukazatele adresy před zpracováním instrukce;
  • nepřímé adresování s dekrementací ukazatele adresy před zpracováním instrukce. 

Přímé adresování

Přímým adresováním rozumíme přístup do datového prostoru paměti, kdy adresa je součastí instrukce zdrojového kódu. Múžeme tímto způsobem adresovat pracovní registry registrového pole, registry vstupů a výstupů (SFR), oblast datové a programové paměti.

Nepřímé adresování

Nepřímím adresováním rozumíme způsob, kady adresa není součástí instrukce. U tohoto způsobu adresování je adresa umístěna v takzvaných 16-ti bitových  registrových párech označovaných u mikrořadičů AVR  jako registry X, Y a Z.  Registr X jen tvořený registry R26 a R27, registr Y je tvořený registry R28 a R29, registr Z je tvořený registry R 30a R31.

Způsob nepřímého adresování umožňuje použití poslouností instrukcí k bloku paměti, kde data, ke terým přistupujeme touto formou adresování, představují například nějakou tabulku.

Zdroje
  • HRBÁČEK, Jiří. Komunikace mikrokontroléru s okolím. 1. vyd. Praha: BEN - technická literatura, 1999, 159 s. ISBN 80-86056-42-21.
  • MATOUŠEK, David. Práce s mikrokontroléry ATMEL AVR ATmega16. 1. vyd. Praha: BEN - technická literatura, 2006, 319 s. μC. ISBN 80-730-0174-8.
  • VÁŇA, Vladimír. Mikrokontroléry ATMEL AVR: programování v jazyce C : popis a práce ve vývojovém prostředí CodeVisionAVR C. 1. vyd. Praha: BEN - technická literatura, 2003, 215 s. ISBN 80-730-0102-0.
Kontrolní otázka
  • Při jakých programátorských rutinách by jsi použil způsob přímého adresování a nepříméhob adresování?
  • Jaké výhody umožňuje způsob  nepřímého adresování?