From bb6bf2c06f75c15e3159d24dc159f18fa188fa1b Mon Sep 17 00:00:00 2001 From: Filip Znachor Date: Fri, 9 Jun 2023 18:01:34 +0200 Subject: [PATCH] =?UTF-8?q?P=C5=99id=C3=A1n=C3=AD=20pozn=C3=A1mek=20z=20PO?= =?UTF-8?q?T=20k=20z=C3=A1sobn=C3=ADku?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- KIV POT/04. Použití zásobníku.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 KIV POT/04. Použití zásobníku.md 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