Potřebné příkazy pro práci s porty v ASM
Použité registry:
DDRx – Data Direction Registr – směr toku dat. Určuje zda
bude pin vstupní nebo výstupní. (defaultně 0 =
vstupní, 1 = výstupní)
PINx – načtení hodnoty na vstupu
PORTx- nastavení hodnot na výstupu
Použité instrukce (seznam všech instrukcí je v datasheetu použitého procesoru – u ATmega128 str. 365) :
LDI – uložení konstanty do registru (proměnné)
OUT – zápis dat z registru (proměnné) do I/O prostoru
IN – načtení dat z I/O prostoru do registru (proměnné)
RJMP – relativní skok na adresu (část programu, atd. )
SBRC – Testování bitu v registru, zda je
vynulován (clear), pokud ano přeskakuje
následující instrukci
SBRS – Testování bitu v registru, zda je nastaven
(set), pokud ano přeskakuje následující instrukci
SBIC – Testování bitu v I/O prostoru, zda je
vynulován (clear), pokud ano přeskakuje
následující instrukci
SBIS – Testování bitu v I/O prostoru, zda je
nastaven (set), pokud ano přeskakuje následující
instrukci
RCALL – relativní volání podprogramu.
Návratová hodnota je uložena v zásobníku
(stackpointer)
RET – návrat z podprogramu
INC / DEC – inkrementuje / dekrementuje obsah registru (proměnné)
BRNE – pokud je předešlá instrukce nenulová,
provede se relativní skok na zvolenou část programu
ROR – rotace bitu vpravo
ROL – rotace bitu vlevo