4 Instrukcje bajtowej wymiany danych 35
Pop_DPTR:
POP DPH ;DPH <= (SP) = 56H, SP «= SP • 1, SP = 81H
POP DPL ;DPL c= (SP) = 34H. SP <= SP -1, SP » 80H
spowoduje wpisanie do wskaźnikowego rejestru danych (DPTR) wartości 5634H.
XCH A,argument
Exchange
Dziabnie:
Adresowanie Mnemonik:
Rn
(adr)
(Ri)
Cykle Znacz-
maszynowe: niki:
Struktura bajtów:
rejestrowe: |
XCH |
A,Rn |
1 1 0 |
0 1 r |
r r | 1 |
r |
bezpośrednie: |
XCH |
A,adr |
| 1 ł 0 |
1 0 1 |
o ol 1 |
p* |
c |
adr |
“I | ||||
pośrednie: |
xai |
A,@Ri |
n i o |
0 | 0 1 |
liii |
p* |
*) Pozostałe znaczniki nie są zmieniane z wyjątkiem instrukcji modyfikującej rejestr stanu procesora (PS W), np. XCH A.PSW.
Opis działania:
Wzajemna wymiana zawartości akumulatora (A) i:
• rejestru Rn, Rn = R0..R7,
• komórki wewnętrznej pamięci RAM adresowanej bezpośrednio adresem adr,
• komórki wewnętrznej pamięci RAM adresowanej pośrednio rejestrem Ri,
Ri = RO lub Rl
Zmieniany jest stan znacznika parzystości (P) z wyjątkiem instrukcji modyfikującej rejestr stanu procesora (PSW), która może zmienić pozostałe znaczniki.
Przykład J:
Instrukcja wymiany XCH może być zastąpiona dwiema instrukcjami przesłania MOV z wykorzystaniem dodatkowego rejestru pomocniczego:
Mikrokontroler 80(C)5l - programowanie
RRC A Rotate Accumulator Righl Ihrough Carry
Działanie: An.j c= An, n - 7..1
A7 c= C C<= A«)
Adresowanie: Mnemonik: Struktura bajtów: Cykle Znacz-
maszynowe: nikt:
rejestrowe: RRC A | 0 0 0 1 | 0 0 t T] l C I*
Opis działania:
Zawartość akumulatora przesuwana jest cyklicznie w prawo o jeden bit, bit A7 przyjmuje wartość znacznika przeniesienia (O. a znacznik przeniesienia (C) wartość bitu Ao. Sytuację tę przedstawia rysunek:
)
A7 —> Af
Przykład:
Dzielenie przez dwa 2-bajtowcj liczby całkowitej bez znaku zawartej w rejestrach K6, R7:
C ,-CcO
A,R6 ;A c= R6, R6 zawiera bardziej znaczący bajt
A ;Ay cC, Cc= Aq,
; przesunięcie w prawo zawartości A
R6,A ;R6 <= A
A,R7 ;A <= R7, R7 zawiera mniej znaczący bajt
A ;A7<= C, CcAq,
; przesunięcie w prawo zawartości A,
R7.A ;R7 <= A
Iloczyn_Ł CLR MOV RRC
MOV MOV RRC
MOV
Mikrokontroler 80(C)5I - programowanie