12

12



7 Instrukcje skokpw i \vywolan podprogramów 81

Adresowanie Mnemonik:    Struktura bajtów:    Cykle    Znacz-

maszynowe:    nikt

natychmiastowe: LJMP adr_16


1 0 0 0 0 | 0 0 10


2


Ais-.Ag

A7-A0

2


natychmiastowe: SJMP rei


11 0 0 0 I 0 0 U ~Ó1


rei


rejestrowe:


JMP 9A+DPTR 1 0 1 1    1 | 0 0 1 T]


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:

•    11-bitowy adres w rozkazie AJMP adr_11; w 16-bitowym liczniku rozkazów (PC) modyfikowanych jest tylko 11 najmniej znaczących bitów Ajo-Ag, pięć bardziej znaczących bitów nie jest zmienianych Aj5-.Au, skok wykonywany jest wewnątrz 2 kBajtowego bloku pamięci kodu programu, bity Ajq 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 (PO 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 R-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 instrukcji 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 łub 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:

adresy wewnętrznej pamięd RAM


41H

40H

31H

30H

bardziej znaczący b3jt mniej znaczący bajt

bardziej znaczący bajt mniej znaczący bajt


Argumentuj oraz Sumy


Argumentuj


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

Dod_16:

MOV A.30H ADD A,40H


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


MOV 4111, A


;Ac=(30H),    A= 6FH ■ 0110 1111B

; A <= A+(40H),    (40H) =» 93H - 1001 0011B

;    A= U2H = 0000 001OB

.znaczniki: C » 1, AC * 1. P * 1 ;(40H) <= A

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

; A c= A+C+(41H),    (41H)«3AH« 0011101UB

;    A=4DH« 01001101B

.•znaczniki: C = 0, AC = 0, P = U ;(41H)<= A


Mikrokontroler 304051 - programowanie


Wyszukiwarka

Podobne podstrony:
12 7 Insnukcte skokpw i wywołań podprogramów 81 7 Insnukcte skokpw i wywołań podprogramów
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
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 3. Instrukcje modyfikacji bitów 91 Przykład: Ustawienie znacznika przeniesienia (C> przy
14 7 Instrukcje skokow i wywołań podprogramów 79 CJNE argument_l,axgument_2,adres Compare and Jump
12 8. Instrukcje modyfikacji bitów 91 Przykład: Ustawienie znacznika przeniesienia (O przy spełnien
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

więcej podobnych podstron