diff --git a/KIV POT/04. Použití zásobníku.md b/KIV POT/04. Použití zásobníku.md new file mode 100644 index 0000000..eb1679b --- /dev/null +++ b/KIV POT/04. Použití zásobníku.md @@ -0,0 +1,22 @@ +# Použití zásobníku + +**Zásobník podporovaný HW procesoru** +- procesor má speciální registr SP, který ukazuje na vrchol zásobníku +- se zásobníkem se pracuje instrukcemi PUSH a POP + - musí se dodržet správné pořadí operací +- dále je používán při volání podprogramu a obsluze přerušení +- položky v zásobníku jsou typu Word (16 bitů) nebo DWord (32 bitů) + +**Volání podprogramu** +- instrukce `JSR` + - skok do programu + - uloží návratovou adresu do zásobníku + - provede skok na cílovou adresu +- instrukce `RTS` musí provést návrat na správné místo volajícího programu + - vyjme obsah vrcholu zásobníku a uloží jej do `PC` + +**Nastavení SP** +- inicializace SP je starost programátora +- musí se zajitit + - vyhrazení místa pro zásobník (`.space 100`) + - nastavení SP na dno zásobníku (`MOV.L #stck, ER7`) \ No newline at end of file