10

10



7 Instrukcje skoków i wywołań podprogramów 83

CALL adr    CALL Uncondilional

Działanie:    PC <= PC +- 2, SPc=SP+l

(SP) <= PC7..0

SP c= SP +1 (SP) <= PC15..8. -

PC10Q «= adr_l1

PC c= PC + 3, SPcrSP +1 (SP) <= PC7..0 SP c= SP ♦ 1 (SP) <= PC] 5.8

PC15 0C=adM6

Cykle    Znacz-

maszynowe. niki:


Adresowanie Mnemonik:    Struktura bajtów: 1 2

2. Struktura pamięci mikiokontćolcra_________

:o


-V    <    “

INC RO    'i ;RU c= RU + 1, przygotowanie do przesuwania

INC    DPTR    ;D]TR <= DPTR + 1, kolejnego bajtu

DJNZ R7,Skok    ;R7 ę ft7-1, jeśli R7 2 0 to skok do adresu Skok.

;powtórzcnie przesunięcia kolejnego bajtu

4EE7H . 4E68H

437FH . 4300H

obszar adresowany wskaźnikowym rejestrem danych (OPTR)

przesuwany blok pamięci liczy 128 bajtów

obszar adresowany rejestrem RO i portem P2


nowe położenie przesuwanego bloku danych

przesuwany blok danych

Rys. 2-11

Zewnętrzna pamięć RAM adresowana jest następująco:

•    port P2 i rejestr RO adresują kolejne przesuwane bajty,

•    wskaźnikowy rejestT danych (DPTR) adresuje obszar pamięci, do którego przesuwane są kolejne bajty.

•    rejestr R7 jest licznikiem przesuwanych bajtów.

W podanym przykładzie, ze względu na użycie do zliczania przesuwanych bajtów 8-bitowcgo rejestru R7, możliwe jest tylko przesunięcie bloku pamięci o wielkości nie przekraczającej 2^ = 256 bajtów. Przyjęty sposób adresowania zakłada, że obszary obu bloków pamięci są rozłączne. Jeśli warunek ten nie jest spełniony (rysunek 2-12), to algorytm przesuwania musi uwzględniać fakt wspólnej części obu bloków:

• jeśli wystąpi sytuacja jak na rysunku 2-12 a. to przesuwanie kolejnych bajtów rozpoczyna się od końca przesuwanego bloku. Przyjęcie odwrotnej kolejności, takiej jaka miała miejsce w programie MOV^BIok_XRAMJnc powoduje zapisywanie początkowych wartości przesuwanego bloku w jego końcowej części, a tym samym niszczenie końcowych bajtów przesuwanego bloku. Przykładowy program przesuwania bloku pamięci o adresie początkowym 4300H liczącego 128 bajtów (adres końca obszaru 437FH) do obszaru o adresie początkowym 4360H (adres końcowy 4360H+7FH=43DFH) przedstawiono poniżej:

Mikrokontroler 80(C)5l - programowanie

natychmiastowe: ACALL

natychmiastowe: LCALL


1

2

2

Działanie

Zawartość licznika rozkazów PC wpisywana jest do stosu adresowanego wskaźnikiem stosu (SP - w pierwszej kolejności wpisywana jest mniej znacząca część licznika rozkazów PC - biły 1X17 (j) wskaźnik st<»su zwiększany jest o dwa. Instrukcje wywołań podprogramów powodują wpisanie do licznika rozkazów (PC) adresu początku wywoływanego podprogramu. W zależności od typu rozkazu adresem jest

2

11-bitowy adres w rozkazie ACALL adr II; w 16-bitowym liczniku rozkazów PC modyfikowanych jest tylko 11 najmniej znaczących bitów A]q..Aq, pięć najbardziej znaczących bitów nie jest zmienianych A^-.A]], skok wykonywany jest

Mikrokontroler 80(C)51 - programowanie


Wyszukiwarka

Podobne podstrony:
10 7 Instrukcje skoków i wywołań podprogramów 73 AJMP Procedura_2 ;skok do Procedury 2 AJMP
16 7 Instrukcje skoków i wywołań podprogramów 77 Przykład 2: Lcd On: Dalej: Jeśli do wyjścia portu
14 7 Instrukcje skokow i wywołań podprogramów 79 CJNE argument_l,axgument_2,adres Compare and Jump
18 7 Instrukcje skoków i wywołań podprogramów 85 •    wpisanie pobranego adresu do l
14 7 Instrukcje skokow i wywołań podprogramów 79 CJNE argument_l.argumenl_2,adres Compaie and Jump
16 7 Instrukcje skoków i wywołań podprogramów 77 Przykład 2: Lcd .On: Dalej: Jeśli do wyjścia portu
10 73 7 Instrukcje skoków i wywołań podprogramów AJMP Procedura_2 ;skok do Procedury 2 AJMP
18 7 łnsinjkgc skoków i wywołań podprogramów 75 7 łnsinjkgc skoków i wywołań podprogramów 75 JMP
12 7 Instrukcje skoków i wywoJag podprogramów 71 Przed omówieniem przedstawionych grup rozkazów wyj
lista rozkazow 3 Lista rozkazów mikroprocesora 8051. Instrukcje skoków i wywołań podprogramów Oznacz
12 7 Insnukcte skokpw i wywołań podprogramów 81 7 Insnukcte skokpw i wywołań podprogramów
10 5 instrukcje arytmetyczne 53 Przykład: Mnożenie dwóch stałych o wartościach lfiD i 29D: Mul Ali:

więcej podobnych podstron