8 Instrukcje modyfikacji buow 89
8 Instrukcje modyfikacji buow 89
CLR bit
Clear Bit
Działanie:
Cci)
bit c= 0
Adresowanie: Mnemonik Struktura bajtów: Cykle Znacz-
maszynowe: niki:
bezpośrednie: CLR C |l 100)0 0 1 *1 l C
bezpośrednie: CLR bit | 1 1 0 0 | 0 0 1 0~ 1
\ adres bitu
Opis działania:
Wpisanie zera logicznego na pozycję wybranego bitu o adresie bit w wewnętrznej pamięd RAM.
Przykład:
Blokowanie systemu przerwań, wpisanie zera logicznego na pozycję bitu EA (EnAble interrupt) w rejestrze specjalnym IE:
CLR EA ;EA <= 0
lub
CLR IE7 ;IE7 <= 0
lub
CLR OAFH ;0AFH c= 0
lub
CLR 0A8H.7 ;0A8H.7 <= 0
CPL bit
Complement Bit
Działanie:
Adresowanie:
MnrmoniJc:
C c= not C
Struktura ba/tów:
bit cr not bit
Cykle Znacz -
maszynowe: niki:
bezpośrednie: CPL C
0 0 1 1~1 1
C
powoduje wpisywanie do stosu 3 bajtów /godnie z kolejnością wprowadzania Sytuację tę przedstawia rysunek 2-6.
Przy odczytywaniu bajtów ze stosu instrukcją POP należy zachować właściwą kolejność. Zmiana kolejności, jeśli jest nieświadoma, może prowadzić do niezamierzonych skutków, ponieważ odczytywane bajty pobierane są zawsze ze szczytu stosu:
POP |
10H |
;(10H) c= (SP), |
SP c=SP -1, |
(10HMEH |
POP |
ACC |
;ACC c= (SP). |
SP c=SP-l. |
ACC=0C1I |
POP |
B |
;B <= (SP), |
SP <=SP -1, |
IU12H |
jeśli rejestry i wybrana komórka pamięci RAM mają mieć przywrócone poprzednie wartośd to po wykonaniu programu jedynie akumulator ma stan początkowy.
M | |||||
33H |
33M |
33H | |||
32H |
32M |
SP * 32M |
4EH | ||
31H |
SP ■ 31H |
OCH |
31H |
OCH | |
SP = 30H |
12M |
30H |
12H |
30H |
12H |
k |
k |
k |
PUSH 10H |
PUSH 10H |
PUSH 10M |
PUSH ACC |
PUSH ACC | |
PUSH B |
Rys. 2-6 Rozmieszczenie bajtów na stosie mikroprocesora
Wskaźnik stosu jest inkrementowany, zwiększana jest jego zawartość, przed wykonaniem instrukcji PUSH (o jeden) i CALL (o dwa) oraz dekrementowany. zmniejszana jest jego zawartość, po pobraniu danych ze stosu w trakcie wykonywanych instrukcji POP (o jeden) i RET lub RETI (o dwa). Zerowanie procesora linią RESET ustala wartość początkową wskaźnika stosu 5P=7. Oznacza to. że przy przesianiu pierwszej danej do stosu następuje wpisanie jej do komórki .» adresie 8, tzn. do rejestru RO pierwszego banku rejestrów (RDl) (rysunek 2-2) Zawartość wskaźnika stosu może być programowo zmieniana:
MOV SP,#40H ;SP <= 40H, wpisz wartość 40H do wskaźnika stosu
lub
MOV 81H,#40H ;(81H)<=40H. wpisz do komórki
; o adresie 81H (adres SP) wat tość 4UII
M-terr»lr esnrrnl^r fMfOśl - DiOuramowanie