6. lnstrukgc logiczne 69
6. lnstrukgc logiczne 69
SWAP A
Swap Accumulator Nibblęs
Działanie:
A7..4 « a3..0
Adresowanie.
Mnemonik:
Struktura ba/tów:
Cykle Znacz•
maszynowe: niki:
rejestrowe
SWAP A
1
Opis działania:
Wzajemna wymiana czterech bardziej znaczących bitów akumulatora A7..4 z czterema mniej znaczącymi bitami akumulatora A3 .q. Sytuację tę przedstawiono na rysunku:
A7..4 AJ..o
Przykład:
Instrukqa SWAP A jest równoważna 4 instrukcjom RL A lub RR A.
Przestawianie cyfr w |
1-bajtowej liczbie zapisanej | |
wewnętrznej pamięd |
RAM 0 adresie adr: | |
Swap Bcd: | ||
MOV |
A,adr |
;A c= (adr), np. |
SWAP |
A |
;a7..4 a3..0 |
MOV |
adr.A |
;(adr) c= A |
lub RR.Bcd: | ||
MOV |
A,adr |
;A c= (adr), np. |
RR |
A |
przesuwanie |
RR |
A |
;akumulatora |
RR |
A |
;w prawo |
RR |
A |
.cztery razy |
MOV |
adr.A |
;(adr) <= A ... • V- |
Ir) = 69H A-96H
A = 0B4H » 1011 0100B A = 5AH = 0101 1010B A*2DH = 00101101B A ■ 96H = 1001 011 OB
0110 1001B 1001 0110B
Mikrokontroler 80(C)5I - programowanie
Przykład:
*V\
Zachowanie na stosie zawartości rejestru R2 w trzecim banku (RB3) * adres 13H. komórki wewnętrznej pamięci RAM o adresie 34H i zawartości portu PI:
Push_R2_Adr_Pl:
MOV |
SP,#3FH |
;SP <= 3FH, ; stosem jest wewnętrzna pamięć RAM |
; adresowana pośrednio, pierwsza wolna ; ' komórka stosu ma adres 80H * | ||
PUSH |
13H |
;SP <= SP +1 = 40H, (SP) c= (13H), adresowanie ; rejestrów tylko przez bezpośrednie adresy |
. PUSH |
34H |
;SP<= SP + 1 = 41H. (SP) <= (34) |
PUSH |
PI |
;SP<= SP + 1 = 42H, (SP) «=(P1)» (80H), |
i r ; |
; w miejsce symbolu Pl asembler podstawia |
adres 80H
POP adr Pop Direct from Stack
Działanie . (adr) c= (SP)
SP <= SP • 1
Adrcscnoanic Mnemonik: Struktura bajtów: Cykle Znacz•
_ maszynowe: mki:
bezpośrednie: POP adr | 1 1 0 1 | 0 0 0 | 0 | 2
1 , 1 I
’) Znaczniki nie są zmieniane z wyjątkiem instrukcji modyfikującej akumulator A i rejestr stanu procesora (PS W), np. POP PS W.
Opis działania:
Przesianie zawartości komórki wewnętrznej pamięci RAM adresowanej wskaźnikiem stosu (SP, adresowanie pośrednie) do komórki wewnętrznej pamięci RAM o podanym w drugim bajcie instrukcji adresie adr (adresowanie bezpośrednie). Zmniejszenie wskaźnika stosu (SP) o jeden.
Przykład:
Jeśli wskaźnik stosu SP - 82H i w komórkach pamięci RAM adresowanej pośrednio o adresach 80..82H zawarte są wartości: 12H, 34H, 56H to wykonanie programu:
MikroŁnnłfol<*r 9fvrn<i