7 Instrukcje skoków i wywołań podprogramów 85
• wpisanie pobranego adresu do licznika rozkazów PC.
• zmniejszenie wskaźnika stosu SP o dwa.
Rozkaz RET stosowany jest jako zakończenie podprogramu wywoływanego instrukcją ACALL lub LCALL, natomiast rozkaz RETI kończy podprogram wywołany przez przerwanie. Jeśli w trakcie obsługi przerwania wystąpiło przerwanie o tym samym lub niższym priorytecie co obsługiwane, to kolejne przerwanie może być przyjęte dopiero po wykonaniu instrukcji RETI i jeszcze jednej instrukcji programu. Rozkaz RET powrotu ze zwykłego podprogramu nie ma żadnego wpływu na układ przerwań.
Przykład:
Przed wykonaniem instrukcji RET wskaźnik stosu SP = 42H, a zawartości komórek wewnętrznej pamięci RAM o adresach 41H i 42H są następujące: OABH i 56H. Wykonanie instrukcji:
Ret_Prog:
RET ;PC c= 56ABH, SP<=SP-2
spowoduje rozpoczęcie wykonywania dalszej części programu od adresu 56ABH.
Mikrokontroler 80(C)5I - programowanie
W czasie wykonywania instrukcji MOVX A,®DITR bardziej znacząca czyść adresu komórki zewnęfrznej pamięci RAM multipleksowana jest z zawartością portu 1*2. a część mniej znacząca adresu multipleksowana z zawartością portu PO.
XDATA
Rys. 2-8 Adresowanie zewnętrznej pamięd RAM mikroprocesora (XDATA)
Rys. 2-9 Adresowanie zewnętrznej pamięa RAM za pośrednictwem wskaźnikowego rejestru danych (DPTR)
Mikrokontroler 80(C)5| - programowanie