11

11



4. Instrukcje hakowej wymiany danych 31

Adresowanie:    Mnemonik:    Struktura bajtów:    Cykle    Znacz-

maszynowe:

niJci:

rejestrowe:

MOV

adr,A

rr

1 1

1 |o

1

1

'1

1

L_

adr

I

rejestrowe:

MOV

adr,Rn

h

0 0

0 | 1

r

r

2

L_

adr

1

bezpośrednie:

MOV

adr.adrl

1

n u

0 | 0

1

0

'1

2

1

adr

|

adrl

pośrednie:

MOV

adr,@Ri

h

0

0 | 0

1

1

i

2

adr

1

natychmiastowe:

MOV

adr.idana

10

1

1 1 0

1

0

>1

2

adr

1

1

dana

rejestrowe:

MOV

6Ri,A

i'

1

rr|T

r

r

T)

1

bezpośrednie:

MOV

SRi.adr

ii

0

0 | 1

r

r

r 1

2

1

adr

_J

natychmiastowe:

MOV

oRi.łdana .

0

1

1 1

r

r

'1

1

1

dana

natychmiastowe:

MOV

DPTR,#dana.

.16 | 1

0

1) 1 | 0

0

0

°l

2

dana_16i5

dana 167,0

Mik/okomroler 80(C)SI - progiamowamc

Rozkazy CJNE przed wykonaniem skoku wzglydnego porównują oba podam: argumenty. Jest to szczególnie istotne ponieważ w liście rozkazów mikroprocesora 8051 brak rozkazów porównania. Przykładem wykorzystania rozważanych instrukcji jest rozpoczęcie wykonywania procedury Proc_l jeśli Parametr zawarty w akumulatorze (A) jest równy wartości 4DH:

MOV A,#Parametr CJNE A,#4DH,Dalcj ProcJ:


Dalej:


;A c= Parametr

;jeśli A x 4DH to skok do adresu Dalej

;początck procedury Proc_l ;koniec procedury Proc J ;wykonywanie następnych instrukcji ;programu

Rozkazy skoków bezwarunkowych obejmują 4 instrukcje. W każdej z nich adres skoku podawany jest odmiennie:

•    argumentem w rozkazie SJMP rei jest 8-bitowy adres względny rei. Powoduje to. że zmiana sekwencji programu możliwa jest przez dokonanie skoku o -128 komórek poniżej lub o 127 komórek powyżej miejsca, w którym znajduje się instmkcja,

•    w rozkazie AJMP adres_ll podany 11-bitowy adres zmienia 3 najbardziej znaczące bity w pierwszym bajdę instrukqi. Wykonanie skoku możliwe jest w obrębie 2 kBajtowego bloku pamięd kodu programu,

•    3-bajtowa instrukcja LJMP adres_16 zawiera pełny 16-bitowy adres, a tym samym ograniczeniem jest jedynie dostępny 64 kBajtowy obszar pamięd programu.

•    w skoku pośrednim JMP 6A+DPTR adres skoku jest sumą zawartości akumulatora (A), 8-bilowej liczby całkowitej bez znaku i wskaźnikowego rejestru danych (DPTR).

Skoki pośrednie najczęśdej stosowane są do realizacji procedur, których adresy początkowe podawane są w tablicach. Jeśli Parametrem określającym typ procedury jest , zmienna z przedziału 0..4 to adresy początkowe 5 różnych procedur mogą być zadeklarowane tak jak w poniższym przykładzie:

MOV DPTR,#Tablica .Procedur ;DPTK <= adres Tablicy Procedur MOV A.tfParametr    ;A c= Parametr, Parametr - i).. 4

RL    A    ;przesunięde A w lewo. mnożenie przez 2.

;ponieważ rozkazy AJMP są 2 bajtowe JMP GA+DPTR ;PC c A + DPTR

Tablica Procedur:

AJMP Procedura l) AJMP Procedura.!


;deklaraqa tablicy adresów początkowych procedm ;skok do Procedury l)

;skok do Procedury 1


Wyszukiwarka

Podobne podstrony:
11 •1 Instrukcje bajtowej wymiany danych
11 4. Instgjkc)c bajtowe) wymiany danych 31 4. Instgjkc)c bajtowe) wymiany danych
19 4. Instrukcje bajtowej wymiany danych 29 Grupa rozkazów MOVX dotyczy wymiany danych między mikro
17 4. Instrukcję bajtowe) wymiany danych 37 Instrukcja XCHD stosowana jest do zamiany kodu BCD na i
17 4 Instrukcje bajtowe) wymiany danych 37 Instrukcja XCHD stosowana jest do zamiany kodu BCD na in
15 4 Instrukcje bajtowej wymiany danych 35 Pop_DPTR: POP DPH    ;DPH <= (SP) = 56
13 4 Instrukcje bajtowej wymiany danych 33 i komórki wewnętrznej pamięci KAM o adresie SOH: Mov_RAM
15 4 Instrukcje bajtowej wymiany danych 35 Pop_DPTR: POP DPH    ;DPH c= (SP) = 56H,
19 4 Instrukcje bajtowe) wymiany danych 39 Przykład: Przesianie zawartości czterech banków rejestró
19 4 Instrukcje ba
13 4 Instrukcje ba

więcej podobnych podstron