59
6. InstAjkge logiczne
iloczyn przesyłany jest do akumulatora (A),
• komórki wewnętrznej pamięd RAM adresowanej bezpośrednio adresem adr z: -* zawartością akumulatora A.
-* 8*bitową daną
wynik iloczynu przesyłany jest do komórki wewnętrznej pamięd RAM o adresie adr.
Przykład 1:
Zerowanie wybranych bitów akumulatora: Ay, A3 i Aq:
Maska DB 1000 1001B .jedynka logiczna na pozycji zerowanego bitu Anll_A:
ANL A,#NOT(Maska) ;A <= A and NOT(Maska), NOT to negacja maski ;A <= A and 0111 0110B
dyrektywa asemblera DB ma za zadanie zarezerwowanie 1 bajtu w pamięd kodu programu i wpisanie jako wartośd początkowej 1000 1001B. Maska traktowana jesi jako dąg zero-jedynkowy, w którym niezerowe wartośd pojawiają się na wyróżnionych bitach. Jeśli stan akumulatora A-0DBH-1101 1011H to po wykonaniu programu:
A = 1101 1011B
maska - 1000 1001B
NOT(maska) - 0111 0110B A and NOT(maska) - 0101 1010B
Przykład 2:
Zerowanie bardziej znaczącej tetrady komórki wewnętrznej pamięd KAM o adresie adr. bity (adr)^ 4:
Anl2_adn
ANL adr.#0FH ;(adr) ci (adr) and 0F11
Jeśli zawartość komórki pamięd (adr) =* 4EH - 0100 1110B to po wykonaniu programu stan jest następujący:
(adr) - 0100 HIOB 0FH- 00001111B (adr) and 0FH - 0000 HIOB
Mikrokontroler 80(051 - oroeramowame
5. Instrukcjo arytmetyczne_44
•=*■ «V- • Działanie |
A c= A + |
' Rn (adr) (Ri) #dana |
Add 8-bit Data |
Adresowanie Mnemonik: |
Struktura bajtów: |
Cykle maszynowe: |
rejestrowe: ADD |
A,Rn |
1° |
0 |
1 |
0 | 1 |
r |
r |
3 |
1 |
bezpośrednie: ADD |
A.adr |
1 0 |
0 |
1 |
0 I 0 |
1 |
0 |
Tl |
1 |
1 |
adr | ||||||||
pośrednie: ADD |
A,0Ri |
1 0 |
0 |
1 |
0 0 |
1 |
1 |
3 |
l |
natychmiastowe: ADD |
A.fdana |
1° |
0 |
1 |
0 0 |
1 |
0 |
0 |
1 |
dana
Znaczniki: C, AC, 0V, P
Opis dziabnuu
Dodanie do zawartości akumulatora (A) zawartości:
• rejestru Rn, Rn a R0..R7,
• komórki wewnętrznej pamięci RAM adresowanej bezpośrednio adresem adr.
• komórki wewnętrznej pamięd RAM adresowanej pośrednio rejestrem Ki,
Ri = RO lub Rl,
• 8 bitowej danej.
Wynik dodawania przesiany jest do akumulatora (A).
Znacznik przeniesienia (O sygnalizuje przekroczenie zakresu liczb całkowitych bez znaku (0..255), a znacznik nadmiaru(OV) przekroczenie zakresu liczb całkowitych ze znakiem (-128..+127).
Przykład:
Obliczenie sumy zawartośa rejestrów B (B=9) i R7 (R7=68H=104D) i stałej Const (Const*12H=18D) oraz przesłanie wyniku do komórki wewnętrznej pamięci RAM o adresie 80H:
Mikrokontroler SOfOSl - f>f00ramowanie