17

17



5. Instrukcje arytmetyczne


47


INC argument


Increment


Działanie:


A <= A +1 Rn c= Rn + 1 (adr) <= (adr) +1 (Ri) <= (Ri) +1 DPTR <= DPTR + 1

Cykle    Znacz-

maszynowe    ni ki:


Adresowanie:    Mnemonik:    Struktura bajtów:

rejestrowe:

INC

A

UL

0

0

0 | 0

1

0

jJ

1

P

rejestrowe:

INC

Rn

IX

0

0

_oj_L

r

r

T|

1

-

bezpośrednie:

INC

adr

IZ

0

0

0 | 0

1

0

'1

• 1

-

adr

pośrednie:

INC

@Ri

0

0

0

0 | 0

1

1

i

1

-

rejestrowe:

INC

DPTR

Ll

0

1

0 | 0

0

1

_lI

2

-

Opis działania:

Zwiększenie o jeden zmiennej zawartej w:

•    akumulatorze (A)

•    rejestrze Rn, Rn=R0..R7,

•    komórce wewnętrznej pamięci RAM adresowanej bezpośrednio adresem adr

•    komórce wewnętrznej pamięd RAM adresowanej pośrednio rejestrem Ri,

Ri = RO lub R1.

•    wskaźnikowym rejestrze danych (DPTR); zwiększanie o jeden wykonywane jest w dwóch etapach;

-♦ jako pierwsza zwiększana jest o jeden mniej znaczaca część rejestru DPTR (rejestr DPL),

-* jeśli wystąpiło przeniesienie to zwiększana jest o jeden bardziej znacząca część rejestru DPTR (rejestr DPH).

Instrukcja INC DPTR jest jedyną 16-bitową instrukcją arytmetyczną

Przykład 1:

Zwiększenie o jeden zawartości 8-bitowego rejestru lub komórki pamięd wykonywane jest modulo 6 bitów:

6. Instrukcje logiczne

5o


maszynowego (instrukcje 1-bajtowe i 2-bajtowe), a jedynie rozkazy typu ANL <bajt>,#dana wymagają 2 cykli maszynowych (także ORL <bajt>,tfdana i XRL <bajt>,#dana). Na uwagę zasługuje fakt, że w procesorach rodziny MCS51 możliwe jest manipulowanie bilami portów. Przykładowo negację linii wyjściowych portu PI otrzymuje się wykonując rozkaz:

XRL P1J0FFH    ;P1 <= PI xor OFFH

Tak efektywne działanie wynika ze specyficznej budowy wewnętrznej wszystkich portów i odzwierciedlenia zawartości portów w przestrzeni rejestrów specjalnych (SFR).

Instrukcję CLR A można zaliczyć zarówno do instrukcji logicznych, kasowania wszystkich bitów akumulatora, jak i do instrukcji wymiany danych, z wpisem do akumulatora wartości zerowej. Rozkaz CPL A realizuje standardową funkcję negacji logicznej.

Ostatnią grupę tworzą instrukcje przesuwające w lewo, w prawo i zamieniające wzajemnie obłe tetrady akumulatora. Przesuwanie zawartości akumulatora w lewo równoznaczne jest operacji mnożenia, a przesuwanie w prawo operacji dzielenia binarnego. Jeżeli stan akumulatora równy jest A=0001 OOOOB » 10H, to wykonanie rozkazów:

CRl.    C    ,Cc=0

RI.C    A    ,-zawartość akumulatora przesuń logicznie

;w lewo o jedną pozycję

spowodujcie w akumulatorze pojawi się wartość A=<X)10 OOOOB=20H. co odpowiada pomnożeniu zawartości akumulatora przez 2. Przyjmując założenia jak poprzednio i wykonując rozkazy:

CRL    ,C <= 0

RRC    A    ;zawartość akumulatora przesuń logicznie

;w prawo o jedną pozyqę

uzyskamy zawartość akumulatora równą A = 0000 100GB = 08H. Jest to równoznaczne z. podzieleniem zawartości akumulatora przez 2. W obu przykładach zastosowano instrukcję CRL C mającą na celu zerowanie znacznika przeniesienia C. Przesuwaniu w lewo i w prawo towarzyszy wpisywanie na najmniej znaczący bit Aq lub na najbardziej znaczący bit akumulatora A7 wartości zerowej. Taki sposób postępowania możliwy jest jedynie w operacjach dzielenia binarnego liczb całkowitych bez znaku lub dodatnich liczb całkowitych (najbardziej znaczący bit akumulatora ma wartość zerową, A7*0). Dla ujemnych liczb całkowitych, dla których najbardziej znaczący bit akumulatora ma wartość A7=l, wyniki są różne od oczekiwanych. Wykonanie przesunięcia dla liczby ujemnej, na przykład wartości -128=80H, prowadzi do sytuacji:

MOV    A.ffBOH    ;A c= 80H » -128D, liczba ujemna Ay«l

CRL    C    ,-CcO

RRC    A    ;zawartość akumulatora przesuń logicznie

;w prawo o jedną pozycję


Wyszukiwarka

Podobne podstrony:
17 3. Ifistrukcje arytmetyczne 47 INC argument
17 4. Instrukcję bajtowe) wymiany danych 37 Instrukcja XCHD stosowana jest do zamiany kodu BCD na i
13 3. Instrukcje arytmetyczne 43 3. Instrukcje arytmetyczne 43 Suma R4R5 R6R7: MOV A.R4 ADD A.
19 S Instrukcje arytmetyczne 49 Opis działania: Odejmowanie od zawartości akumulatora (A) znacznika
10 5 instrukcje arytmetyczne 53 Przykład: Mnożenie dwóch stałych o wartościach lfiD i 29D: Mul Ali:
17 4 Instrukcje bajtowe) wymiany danych 37 Instrukcja XCHD stosowana jest do zamiany kodu BCD na in
13 5. Instrukcje arytmetyczne 43 5. Instrukcje arytmetyczne 43 Suma K4R5 R6R7: MOV A.R4 ADD A.
17 -ł Instrukcje bano we; wymiany danych 27 -ł Instrukcje bano we; wymiany danych 27 MOV R4.0C4H MO
15 5 Instrukcje arytmetyczne 45 ;Ac= 12H ;A<= A ♦ R7 = 7AH .znaczniki: C*0, AC»0, OV*0, P»l ADDC
15 5 Instrukcje arytmetyczne 45 ADD A,#12H A.R7 ADDC A.D MOV R0J80H MOV SRO.A ;Ac= 12H ;A<=
11 51 Instrukcje arytmetyczne Dec. DPTR: MOV A.DPL CI-R C sunn a,#i MOV DrL.A jNC Dalej DEC

więcej podobnych podstron