Technika mikroprocesorowa
Rys. 6. Symulacje prostego programu
Dodatkowo rozwiń listę rejestrów 16-31. Zwróć uwagę na liczby wpisywane do rejestru 16-ego w czasie wykonania programu.
Wykonaj program praca krokowa. W tym celu z Menu Debug wybierz StepInto (Fil).
W kolejnych krokach wykonywane sa następujące czynności:
- Krok 1: wpis do rejestru 16
- Krok 2: przepisanie starszej części adresu z rejestru 16 do rejestru Stack Pointer
- Krok 3: wpis do rejestru 16
- Krok 4: przepisanie młodszej części adresu z rejestru 16 do rejestru Stack Pointer (w tym momencie w Stack Pointer znajduje sie liczba $025F) wskazująca na koniec RAM-u).
- Krok 5: wywołanie podprogramu (na skutek zlożenią adresu powrotu na stos wskaźnik stosu wskazuje na liczbę o dwa mniejsza czyli $025D)
- Krok 6,7,8,9: wykonanie czterech rozkazów „pustych” nop.
- Krok 10: podjecie adresu powrotu i powrót z podprogramu na etykiete koniec (wskaźnik stosu ulega zwiększeniu o 2 i wskazuje na liczbę $025F)
- Kroki 11 - 00 : skoki w miejscu
Rozwiń program przez dopisanie miedzy ustawieniem wskaźnika stosu, a koncern następujących rozkazów:
- Do rejestrów 16, 17 i 18 wstaw 3 różne liczby (pamiętaj, ze mamy do czynienia z mikrokontrolerem 8-mio bitowym i największa liczba w tym systemie to 28 - 1. Operacje matematyczne sa bowiem wykonywane modulo 256.
- Rejestry rl6, rl7, rl8 zlóz 3-ma kolejnymi rozkazamipush na stos.
- Podejmij rejestry ze stosu 3-ma kolejnymi rozkazami pop
Pamiętaj, ze stos ma organizacje jak „talerze na stosie”, tj. ostatni położony jest 1-szym zdjętym.
12