18

18



7 łnsinjkgc skoków i wywołań podprogramów 75

7 łnsinjkgc skoków i wywołań podprogramów 75

JMP warunck,adres


jump on Condition

PC c= PC + 3

Warunek: jeśli Bit - 1

to

PC c= PC + rei

PC «= PC + 3

Jeśli Bit = 0

to

PC <= PC ♦ rei

PCcrPC + 3

Jeśli Bit n 1

to

PC c= PC + rei.

Działanie:

PC c= PC +■ 2

Jcśti C = 1

to

PC <= PC + rei

PCc=PC+2

Jeśli C = 0

to

PC <= PC + rcl

PCcrPC + 2

Jeśli A a 0

to

PC «= PC + rei

PC c= PC ♦ 2

Jeśli A * 0

to

PC er PC + rei

Adresowanie:    Mnemonik:


Struktura bajtów:    Cykle    Znacz-

maszynowe:    niki:

bezpośrednie:    JB bit,rel


bezpośrednie:    JNB bit,rel


bezpośrednie:    JBC bit,rel


bezpośrednie:    JC


rei


bezpośrednie:    JNC


rei


bezpośrednie:    JZ


rei



pośrednictwem rejestru KO lub Rl {w instrukcji XCH pamięć może być adresowana bezpośrednio lub rejestrowo).

Jak stosować niektóre z przedstawionych instrukcji ilustruje dwa poniższe przykłady przesuwania w prawo o dwie pozycje 8-znakowej liczby zapisanej w kodzie BCD (rysunek 4-1). Liczba 12345678 zapisana jest w wewnętrznej pamięci RAM od adresu 48H i zajmuje cztery kolejne bajty. Po wykonaniu programu w akumulatorze mają znajdować się dwie najmniej znaczące cyfry przesuwanej liczby. Przesuwanie w prawo o n-pozycji jest równoważne dzieleniu liczby przez 10n.

stan wewnętrznej pamięci RAM    stan wewnętrznej pamięci RAM

przed wykonaniem programu    po wykonaniu programu


Rys. 4-1 Rozmieszczenie argumentów w wewnętrznej pamięci mikroprocesora. W pierwszym przykładzie zastosowano jedynie instrukcje typu MOV <dcst>,<byte>:

MOV

A.48H

;A c= (48H)

MOV

4SH.49II

;(48H)c=(49łl)

MOV

49H.4AH

,•(4911) c= (4Al 1)

MOV

4AH.4DH

;(4AH) <= (4BH)

MOV

4BH,#0

;(4BH) <= 0

drugim instrukcję XCH A,<byte>:

CLR

A

;A <=-0

XCH

;stan akurnualłora pu wykonaniu instrukcji:

A.4UH

;A <=> (4BH),

A » 12H

XCH

A.4AH

;A o (4AH),

A = 34H

XCH

A.49H

;A o (49h),

A = 56H

XCH

A.48H

;A co (48H),

. A a 78H

Mimo identycznego działania, długość programów

i czas ich realizacji

równy. W pierwszym przypadku program liczy 14 bajtów i realizowany jest w 9 cyklach maszynowych, a w drugim liczy 9 bajtów i jego wykonanie trwa 5 cykli maszynowych.

Mikrokontroler 80(C)51 - programowanie


Wyszukiwarka

Podobne podstrony:
18 7 Instrukcje skoków i wywołań podprogramów 85 •    wpisanie pobranego adresu do l
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
14 7 Instrukcje skokow i wywołań podprogramów 79 CJNE argument_l,axgument_2,adres Compare and Jump
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
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
Laboratorium Elektroniki cz I 1 178 Po skokowej zmianie napięcia polaryzującego diodę w kierunku z
18 18 I. Klasy przekrojów 1 stateczność miejscowa o /d * o: o : w i Oj«

więcej podobnych podstron