6. Instrukcje logiczne
69
SWAP A
Swap Accumulator Nibblęs
Działanie:
Adresowanie Mnemonik: - Struktura bajtów: Cykle Znacz-
maszynowe: niki:
rejestrowe: SWAP A | 1 1 0 0 | 0 1 0 0 | 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:
Przykład:
Instrukqa SWAP A jest równoważna 4 instrukcjom RL A lub RR A.
Przestawianie cyfr w 1-bajtowej liczbie zapisanej w kodzie BCD zawartej w komórce wewnętrznej pamięci RAM o adresie adn
Swap.Bcd:
MOV |
A.adr |
;A «= (adr), np. (adr) = 69H = 0110 1001B |
SWAP |
A |
;A7..4 <=> A3..0, A = 96H = 1001 0110B |
MOV |
adr, A |
;(adr) c= A |
lub
Bcd: MOV |
A.adr |
;A c= (adr). |
np. (adr)-69H =011010018 |
RR |
A |
.przesuwanie |
A -0B4H = 1011 0100B |
RR |
A |
.akumulatora |
A = 5AH = 0101 1010B |
RR |
A |
;w prawo |
A = 2DH = 0010 1101B |
RR |
A |
.cztery razy |
A-96H = 1001 0110B |
MOV |
adr.A |
;(adr) c= A \ |
Mikrokontroler 80<C)S1 - programowanie
A Instrukcje bajtowi wymiany dartyęh ' _5^
Przykład: |
< |
* V ^ |
Zachowanie |
na stosie zawartości rejestru R2 w trzecim banku (RB3) • adres UH | |
komórki wewnętrznej pamięci RAM o adresie 34H i zawartości portu Pl: | ||
Push_R2_Adr_Pl: | ||
MOV |
SP,#3FH |
£P«=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) c= (34) |
PUSH |
Pl |
;SP<= SP + 1 = 42H, (SP) c= (Pl) - (80H), |
r . ; |
; w miejsce symbolu Pl asembler podstawia ; adres 80H |
POP adr 1 |
Pop Direct from Stack | |
Działanie:. |
(adr) c= (SP) | |
SP c= SP • 1 | ||
Adresowanie: |
Mnemonik: Struktura bajtów: |
Cykle Znacz■ |
maszynowe: mki: |
bezpośrednie: POP adr
adr
') 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:
Przesłanie 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..82M zawarte są wartości: 12H, 34H, 56H to wykonanie programu:
MikroŁnnffol**' 9(VO<'