4 Instrukcje bajtowej wymiany danych 35
Pop_DPTR:
POP DPH ;DPH c= (SP) = 56H, SP <= SP * 1, SP = 81H
POP DPL ;DPL c= (SP) = 34H. SP cr SP -1, SP = 80H
spowoduje wpisanie do wskaźnikowego rejestru danych (DPTR) wartości 5634H.
XCH A,argument
Exchange
Działanie:
A o
Adresowanie: Mnemonik:
Rn
(adr)
(Ri)
Struktura bajtów:
Cykle Znacz-
maszynowe: niki:
rejestrowe: |
XCH |
A,Rn |
bezpośrednie: |
XCH |
A,adr |
pośrednie: |
XCH |
A,@Ri |
*/ Pozostałe znaczniki nie są zmieniane z wyjątkiem instrukcji modyfikującej rejestr stanu procesora (PSW), 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 (P$W), która może zmienić pozostałe znaczniki.
Przykład 1:
Instrukcja wymiany XCH może być zastąpiona dwiema instrukcjami przesiania MOV z wykorzystaniem dodatkowego rejestru pomocniczego:
Mikrokontroler 8<XC)5l - programowanie
RRC A Rotate Accumulator Right Ihrough Carry
Działanie: An.j c= An, n ■ 7..1
A7 ci C Ce=Ao
Adresowanie: Mnemonik Struktura bajtów: Cykle Znacz-
maszynowe: niki:
rejestrowe: RRC A | 0 0 0 1 | 0 0 1 T~| 1 C. P
Opis działania:
Zawartość akumulatora przesuwana jest cyklicznie w prawo o jeden bit, bit Ay przyjmuje wartość znacznika przeniesienia (O, a znacznik przeniesienia (C) wartość bitu Aq. Sytuację tę przedstawia rysunek:
Przykład:
A7 —> Aq
Dzielenie przez dwa 2-bajtowcj liczby całkowitej bez znaku zawartej w rejestrach | |||
R6, R7: | |||
lloczyn_2: | |||
CLR |
C ,C<=0 | ||
MOV |
A,R6 |
Ac=R6, |
R6 zawiera bardziej znaczący bajt |
RRC |
A |
AycrC, |
CcAo, |
MOV |
R6,A |
R6<= A |
przesunięcie w prawo zawartości A |
MOV |
A.R7 |
A <= R7, |
R7 zawiera mniej znaczący bajt |
RRC |
A |
A7 <= c. |
C<= Af), |
MOV |
R7.A |
R7<= A |
przesunięcie w prawo zawartości A, |
Mikrokontroler 80(C)5I - programowanie