12

12



o Instrukcje logiczni 61

wynik operacji przesyłany jest do akumulatora,

• komórki wewnętrznej pamięci RAM adresowanej bezpośrednio adresem adr z: -* zawartością akumulatora A,

-> 8-bitową daną

wynik operacji przesyłany jest do komórki wewnętrznej pamięd RAM o adresie adr.

Przykład 1:

Ustawianie, wpisywanie jedynki logicznej na wybrane bity akumulatora: A7, A3 i A0

Maska DB 1000 1001B ,-jedynka logiczna na pozycji ustawianego bitu Orl.A:

ORL A,#Maska    ;A <= A or Maska

Jeśli stan akumulatora A*ODBH=1101 1011H to po wykonaniu programu:

A = 1101 101 IB maska = 1000 1001A or maska = 1101 1011B

Przykład 2:

Wybór trzeciego banku rejestrów (RB3) przez ustawienie bitów RSl i RSO w rejestrze słowa statusowego (PSW):

Orl_PSW:

ORL PSW,#18H ;PSW <=■ PSW or 18H, RSl » RSO = 1

jeśli przed wykonaniem instrukcji wybrany był bank RB1 to po wykonaniu instrukcji stan rejestru słowa statusowego jest następujący:

rew-

c

AC

F0

RSl

RSO OV

FI

P

1

0

1

0

1 1

1

0

18H-0    0    0    1    1    0    0    0

rew»f 1    0    1    1 | 1    1    1    0

Mikrokontroler *0/051 - nroyramowanie

S^tottakci^j-ytmttyczn^

Zasadnicza grupa instrukcji arytmetycznych związana jest z akumulatorem (A). Jeden z argumentów i wynik operacji zawarty jest zawsze w akumulatorze (A). Do wyjątków należą instrukcje inkrementacji (zwiększania o jeden) i dekrementacji (zmniejszania o jeden) zawartości akumulatora (A), rejestrów Rn, rejestrów specjalnych (SFR) oraz komórek wewnętrznej i zewnętrznej pamięci RAM adresowanych pośrednio, tzn. za pomocą rejestrów RO i Rl. Wyjątkiem są również instrukcje mnożenia i dzielenia, z którymi związany jest rejestr B. W tabeli 5-1 przedstawiono listę wszystkich instrukcji arytmetycznych.

Tabela 5-1. Instrukcje arytmetyczne

Mnemonik instrukcji

Operacje

Tryby

adresowania

Liczba

cykli

maszyn.

ADD

A,<bajt>

A

<=

A+<bajt>

R

B

N

P

1

ADDC

A,<bajt>

A

c=

A+C+<bajt>

R

B

N

P

1

INC

A

. A

c=

A+l

B

1

INC

<bajt>

<bajt>

c=

<bajt>+l

R

B

P

1

INC

DPTR

DPTR

<=

DPTR+1

B

2

SUBB

A,<bajt>

A

cz

A-C-<bajt>

R

B

N

P

1

DEC

A

A

c=

A-l

B

1

DEC ■

<bajt>

<bajt>

c=

<bajt>-l

R

B

P

1

MUL

AB

BA

c=

A * B

B

4

DIV •

AB

• A

<=

In«A/B)

B

4

B

CZ

Mod(A/B)

DA

A

korekcja dziesiętna

B

1

Dodawanie dwóch argumentów może być zrealizowane bez uwzględniania znacznika przeniesienia (O ADD A,<bajt> (argumenty jednobajtowe) lub / uwzględnieniem tego znacznika ADDCA,<bajt> (argumenty wielobajtowe). Możliwe jest także zwiększenie o jeden INC<bajt> (inkrcmentacja) wybranego argumentu Przykładem sumy zawartości dwóch rejestrów R3 i R7 jest program:

5uma_R3_R7:

MOV A,R3    ;A c= R3

ADD A,K7    ;AcAt R7. wynik dodawania w akumulatorze

Przy dodawaniu zawartości dwóch par rejestrów R4 (bajt mniej znaczący) i R5 oraz K6 (bajt mniej znaczący) i K7 program musi uwzględnić przeniesienie przy dodawaniu bardziej znaczących bajtów:

M«l'eoVnnłrnl^    I _


Wyszukiwarka

Podobne podstrony:
10 6. Instrukcje logiczne 63 wynik operacji przesyłany jest do akumulatora (A). • komórki wewnętrzn
10 6. Instrukcję logiczne 63 wynik operacji przesyłany jest do akumulatora (A). • komórki wewnętrzn
14 6. Instrukcie logiczne 59 iloczyn przesyłany jest do akumulatora (A), • komórki wewnętrznej pami
14 59 6. InstAjkge logiczne iloczyn przesyłany jest do akumulatora (A), • komórki wewnętrznej pamię
14 6. Instrukcje logiczne 69 SWAP A Swap Accumulator Nibblęs Działanie:A7..4 o A3..0 Adresowanie
16 6 Instrukcje logiczne 57 W akumulatorze znajduje się wartość 40H»*64D. a nie poprawna wartość 0C
18 6, Instrukcje logiczne 57 W akumulatorze znajduje się wartość 40H=+64D, a nu.* poprawna wartość
16 6 Instrukcje logiczne 57 W akumulatorze znajduje się wartość 40H«*64D. a nie poprawna wartość 0C
12 3. Instrukcje modyfikacji bitów 91 Przykład: Ustawienie znacznika przeniesienia (C> przy
12 7 Instrukcje skokpw i vywolan podprogramów 81 Adresowanie Mnemonik:    Struktura

więcej podobnych podstron