12

12



7 Insnukcte skokpw i wywołań podprogramów 81

7 Insnukcte skokpw i wywołań podprogramów 81

Adresmcanie:


Mnemonik:    Struktura bajtów:    Cykle    Znacz-

maszynowe:    niki:

natychmiastowe:


LJMP


adr_16


natychmiastowe:


SJMP


rei


rejestrowe:


JMP


9A+DPTR


2


2


2


Działanie:

Instrukcje skoków bezwarunkowych powodują wpisanie do licznika rozkazów (PC)

adresu następnego wykonywanego rozkazu. W zależności od typu rozkazu adresem

jest:

•    ll*biłowy adres w rozkazie AJMP adr_l1; w lf>-bitowym liczniku rozkazów (PC) modyfikowanych jest tylko 11 najmniej znaczących bitów A-jo -Ao P‘9^ bardziej znaczących bitów nie jest zmienianych Aj^-Ah, skok wykonywany jest wewnątrz 2 kBajtowego bloku pamięci kodu programu, bity A-jq g adresu skoku zmieniają 3 najbardziej znaczące bity pierwszego bajtu rozkazu,

•    16-bitowy adres w rozkazie LJMP adr_16; modyfikowana jest cala zawartość licznika rozkazów (PC),

•    suma zawartości licznika rozkazów (PC) i przesunięcia rei traktowanego jako 8 bitowa liczba całkowita ze znakiem, zakres -128..+127,

•    suma zawartości wskaźnikowego rejestru danych (DPTR) i akumulatora (A) traktowanego jako fi-bitowa liczba całkowita bez znaku, zakres 0..255.

Zawartość akumulatora (A) i przesunięcia rei rozszerzana jest znakowo do 2-bajtów

i dodawana do 16-bitowej zawartości licznika rozkazów (PO.

Przykład 1:

Adres skoku w rozkazie AJMPadr_ll obliczany jest po dodaniu 2 do licznika rozkazów (PO:

Ajmp_adr_ll:

•AJMP 2

w zależności o adresu etykiety Ajmp_adr_11 licznik rozkazów PC może mieć różne wartości:

► jeśli PC = 7FDH to adresem następnej wykonywanej instrukcji jest wartość 211,

-> jeśli PC = 7FEH to adresem następnej wykonywanej instrukcji jest wartość 802H,

Mikrokontroler 80(C)51 - programowanie

3. Lista instrukcji mikrokontrolera - uwagi ogólne

Uporządkowanie alfabetyczne instrukcji wg mnemoników jest najczęstszym sposobem prezentacji listy rozkazów mikroprocesorów, ponieważ ułatwia znalezienie szukanej instrukcji. Łatwiej jednak rozpocząć zaznajamianie się z listą rozkazów ułożoną tematycznie według typów wykonywanych operacji.

W prezentowanej, tematycznej liście instrukcji wyjaśniono działanie samej instrukcji i podano przykład jej użycia. Oprócz mnemonika instrukqi istotna jest składnia, liczba bajtów kodu operacyjnego i argumentów oraz czas realizacji rozkazu wyraż.ony liczbą cykli maszynowych mikroprocesora. Wszystkie nowe informacje o mikroprocesorach publikowane są w literaturze anglojęzycznej co spowodowało, że podano także oryginalne komentarze mnemoników instrukcji. Przy omawianiu każdej instrukcji przedstawiono końcowy stan znaczników mikrokontrolera, a ich interpretację wyjaśniają poniższe przykłady:

• znacznik przeniesienia C sygnalizuje przekroczenie zakresu (O..OFFH) 8-bitowych liczb całkowitych bez znaku w operacji dodawania i odejmowania oraz przekroczenie zakresu 0..99D przy operacji korekcji dziesiętnej. Oznacza przeniesienie między kolejnymi dodawanymi bajtami lub poż.yczkę przy wiclobajtowym odejmowaniu. W przykładzie dodawania dwóch 2-bajtowych argumentów znajdujących się w wewnętrznej pamięci RAM mikrokontrolera (rysunek 3-1) przestawiono stan reieshĄw i znaczników w kolejnych krokach:

41H

adresy 40H wewnętrznej pamięci RAM

31H

30H


_3AH

93H


J2H

BFH


bardziej znaczący b3jt mniej znaczący bajt


Argumentuj oraz Sumy


bardziej znaczący bajt mniej znaczący bajt


Argumentuj


Rys. 3-1 Rozmieszczenie argumentów i sumy w wewnętrznej pamięci mikroprocesora

DodJ6:

MOV A,30H ADD A,40H


MOV 40H.A MOV A.31H ADDC A,41H


>1

MOV 4111, A


A «= (3010,    A=6FH» 1)110 1111B

A <= A+(40H),    (40H) *93 Ha 1001 0011B

A= U2H = OOOO 001 OB znaczniki: C = 1, AC * 1.1’ = 1 (40H) <= A

A c= (31H),    A= 12H * 0001 001 OB

A cc A+C+(41H).    (41H) ■ 3AH = 0011 1 Ul OB

A=4DH= 0100 1101B

"znaczniki: C * 0, AC = 0, P = U (41H)<= A


Mikrokontroler 80<C)51 - programowanie


Wyszukiwarka

Podobne podstrony:
12 7 Instrukcje skokpw i vywolan podprogramów 81 Adresowanie Mnemonik:    Struktura
12 7 Instrukcje skoków i wywoJag podprogramów 71 Przed omówieniem przedstawionych grup rozkazów wyj
10 7 Instrukcje skoków i wywołań podprogramów 83 CALL adr    CALL Uncondilional Dzia
18 7 łnsinjkgc skoków i wywołań podprogramów 75 7 łnsinjkgc skoków i wywołań podprogramów 75 JMP
12 gdzie: T, T2 - reakcje wtórne odpowiednio w p. 1 i 2 od obciążenia wtórnego wywołanego obciążeni
16 7 Instrukcje skoków i wywołań podprogramów 77 Przykład 2: Lcd On: Dalej: Jeśli do wyjścia portu
10 7 Instrukcje skoków i wywołań podprogramów 73 AJMP Procedura_2 ;skok do Procedury 2 AJMP
12 gdzie: T{, f2 - reakcje wtórne odpowiednio w p. 1 i 2 od obciążenia wtórnego wywołanego obciążen
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

więcej podobnych podstron