13

13



3. Instrukcje arytmetyczne 43

3. Instrukcje arytmetyczne 43


Suma R4R5 R6R7: MOV A.R4 ADD A.R6


MOV R6,A MOV A.R5

ADDC A,R7

MOV R7,A


;A <= R4 ;AcA + R6,

;przenie$ienie C zmienione przez sumę R4 + R6 ;R6 c= A, mniej znaczący bajt sumy ;Ac=R5

;rozkazy MOV <dest>,<scr> nie zmieniają C ;A c= A + C + R7,

.przeniesienie C z poprzedniego dodawania ;R7 c= A, bardziej znaczący bajt sumy


,<bajt> są mniej rozbudowane w stosunku do opcraćjTdodawania. W operacjach tych brak jest przede wszystkim odejmowania bez uwzględniania znacznika przeniesienia (O, który sygnalizuje pożyczkę. Odejmowanie zmiennych 1-bajtowych należy poprzedzić operacją kasowania znacznika przeniesienia (O, np. stosując instrukcję CLR C.

Ma uwagę zasługuje instrukcja zwiększania o jeden INCDPTR, inkrementacji, wskaźnikowego rejestru danych (DPTR), która jest jedyną operacją dodawania dla zmiennej 16-bitowej.

IJT i -a • > >• '    .«v ę

Operacja mnożenia MUL AB wykonuje mnożenie dwóch zmiennych 8-bitowych, z których jedna znajduje się w akumulatorze (A), a druga w rejestrze B. Wynik wykonanej operacji przesyłany jest do rejestru B (8 bardziej znaczących bitów wyniku) i akumulatora (8 mniej znaczących bitów wyniku). Podobne działanie ma instrukcja dzielenia zmiennej 8-bitowej, znajdującej się w akumulatorze przez zmienną 8-bitową znajdującą się w rejestrze B. DIV AB. Część całkowita ilorazu przesyłana jest do akumulatora, a reszta z dzielenia do rejestru B. Obie operacje wykonywane są w ciągu 4 cykli maszynowych i są najdłużej wykonywanymi rozkazami. Jeżeli operacje mnożenia i dzielenia dotyczą potęgi 2, to można je zastąpi.1 rozkazami przesunięć logicznych. Należy przy tym przeanalizować, która metoda da krótszy kod wynikowy lub która będzie szybsza.

Ostatnią rozważaną instrukcją jest instrukcja korekcji dziesiętnej DA A. Stasowana jest w operacjach dodawania dla liczb zapisanych w kodzie BCD. Nie może być stosowana do bezpośredniej zamiany liczby zapisanej w kodzie binarnym na liczbę zapisaną w kodzie BCD.

W dalszej części rozdziału przedstawiono pełny zestaw instrukqi arytmetycznych z komentarzami i przykładami zastosowań.

Mikrokontroler ttO(C)5l • programowanie

ORL argument_,argument_2

Logical Or for Byte


Działanie


A c A or


Rn

(adr)

(Ri)

9 dana


(adr)<=(adr) or


f A

[#dana


Adresowanie    Mnemonik:    Struktura bajtów:    Cykle    Znacz-

_    .    maszynowe:    niki:

rejestrowe:

ORL

A,Rn

0

1

0

0 1

r

r

jj

1

P

bezpośrednie:

ORL

A,adr

0

1

0

0 0

1

0

ll

1

P

adr

1

pośrednie:

ORL

A,@Ri

0

1

0

0 0

1

1

il

1

1*

natychmiastowe:

ORL

A,#dana

0

1

0

l) 0

l

0

1

P

L_

dana

1

bezpośrednie:

ORL

adr,A

1

0

0 | 0

0

1

°l

1

_

adr

natychmiastowe:

ORL

adr,#dana

1

0

0 | 0

0

I

_u

2

-

adr

dana

Opis działania:

Suma logiczna zawartości:

• akumulatora (A) z zawartością:

-»rejestru Rn, Rn = R0..R7,

—► komórki wewnętrznej pamięci RAM adresowanej bezpośrednio adresem adr. -* komórki wewnętrznej pamięci RAM adresowane] pośrednio adresem zawartym w rejestrze Ri, Ri = R0 lub Rl.

8-bitowej danej.

Milrrntonrrolrr 9(W"\< i


Wyszukiwarka

Podobne podstrony:
13 5. Instrukcje arytmetyczne 43 5. Instrukcje arytmetyczne 43 Suma K4R5 R6R7: MOV A.R4 ADD A.
13 4 Instrukcje ba
13 4 Instrukcje bajtowej wymiany danych 33 i komórki wewnętrznej pamięci KAM o adresie SOH: Mov_RAM
13 4. Instruktaż wstępny 223 Podstawą do doboru pomocy naukowych są programy szkolenia. Są jednak p
17 5. Instrukcje arytmetyczne 47 INC argument Increment Działanie: A <= A +1 Rn c= Rn + 1 (
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:
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
13 3 Lista instrukcji mikrokontrolera . uwagi ogólne 23 • znacznik przeniesienia połówkowego AC ma
CCF20101218027 “>----:---j-- i ] i i i—!—1 ^-----------»3.....^CO >43 G; i
13 3 Lisu instrukcji mikrokontrolera . uwagi ogólne 23 • znacznik przeniesienia połówkowego AC ma p
13 Tablica 27 Oznaczenia chropowatości powierzchni Wviatek z PN-73/M-04251 Średnie arytmetyczne
10 7 Instrukcje skoków i wywołań podprogramów 83 CALL adr    CALL Uncondilional Dzia
19 4. Instrukcje bajtowej wymiany danych 29 Grupa rozkazów MOVX dotyczy wymiany danych między mikro

więcej podobnych podstron