10

10



5 instrukcje arytmetyczne 53

Przykład:

Mnożenie dwóch stałych o wartościach lfiD i 29D:

Mul Ali:

MOV A,#1RD    ;Ac #18, dziesiętnie, 18-29 - 522 = 20AH

MOV B,#29D    ;B c= #29, dziesiętnie

MUL AB    ;BA e= A* B

;stan rejestrów: B =* 2. A » OAH d znaczników: C = 0, OV ■ 1, P = 0

DA A    Decimal Adjust Accumulator for Addition

lyziahmir.    Jeśli (A3..A0 > 9) lub (AC » 1) to A3..A0 <= A3..A0 + 6

Jeśli (A7..A4 > 9) lub (C =* 1) to A7..A4 c= A7..A4 + 6

Struktura bajtów:    Cykle

maszynowe:


1 1 0 1I0 1 0 Ol 1


Aihrsoiranic Mnemonik:

rejestrowe:    DA A

Znaczniki:    C. AC, P

Opis działania:

Instrukcja DA A stosowana do korekcji dziesiętnej znajdującej się w akumulatorze sumy liczb zapisanych w kodzie BCD. Instrukcja wykonywana jest w dwóch etapach:

•    jeśli wartość mniej znaczącej tetrady akumulatora (bity A3..A0) jest większa od 9 lub znacznik przeniesienia połówkowego AC ■ 1 to do akumulatora dodawana jest wartość 6 korygująca 6 znaków (litery A..F) nie występujących w kodzie dziesiętnym, a stosowane w zapisie szestnastkowym,

•    jeśli wartość bardziej znaczącej tetrady akumulatora (bity A7..A4) jest większa od 9 lub znacznik przeniesienia C = 1 to do akumulatora dodawana jest wartość 60H.

Jcślr po wykonaniu instrukcji DA A znacznik przeniesienia C = 1, sygnalizuje przekroczenie zakresu 1-bajtowych liczb zapisanych w kodzie BCD (0..99), do wyniku należy dodoać 100D.

Mikrokontroler 80(Q5I - programowanie

DEC argument    Decrement

A <= A-l Rn c= Rn -1

Działanie    (adr) e= (adr)-l

(Ri) (Rl) - 1

Adresowanie Mnemonik:    Struktura bajtów.    Cykle    Znacz-

_ maszynowe niki:

rejestrowe:

DEC

A

UL

0

0

1 0

1

0

0 |

1

p

rejestrowe:

DEC

Rn

0

0

0

1 1

r

r

_lI

1

-

bezpośrednie:

DEC

adr

0

0

0

1 0

1

0

I

1

-

adr

pośrednie:

DEC

@Ri

0

0

0

1 0

1

1

Jj

1

.

Opis działania:


Zmniejszenie 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ętfznej pamięci RAM adresowanej pośrednio rejestrem Ri,

Ri = RO lub Rl.


Przykład 1:

Zmniejszenie o jeden zawartości 8-bitowcgo rejestru lub komórki pamięci wykonywane jest modulo 8 bilów:

Dec.Rl:

MOV R1,#0    ;R1 <= 0

DEC    Rl    ;R1 <= Rl -1, Rl = OFFH

Przykład 2:

W zestawie instrukcji DEC <bajt> brak instrukcji DEC DPTR, dlatego adresując tablice danych należy podawać rosnące wartości adresów (stosować instrukcję INC DPTR). Dekrementaq'ę wskaźnikowego rejestru danych (DPTR) należy potraktować jako odejmowanie jedności od zmiennej 2 bajtowej ponieważ instrukcja DEC <bajt> nie zmienia wskaźnika przeniesienia (O:

Mikrokontroler 80(C)5l - programowanie


Wyszukiwarka

Podobne podstrony:
10 5. Instiukcic arytmetyczne 53 Przykład: Mnożenie dwóch Całych o wartościach 18D i 29D: Mul Ali:
10 7 Instrukcje skoków i wywołań podprogramów 83 CALL adr    CALL Uncondilional Dzia
13 3. Instrukcje arytmetyczne 43 3. Instrukcje arytmetyczne 43 Suma R4R5 R6R7: MOV A.R4 ADD A.
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 7 Instrukcje skoków i wywołań podprogramów 73 AJMP Procedura_2 ;skok do Procedury 2 AJMP
13 5. Instrukcje arytmetyczne 43 5. Instrukcje arytmetyczne 43 Suma K4R5 R6R7: MOV A.R4 ADD A.
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
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 4 Instrukcje ba
2011 10 26 29 53 Przykładowe kolokwium z WDAM 1. A Obliczyć wartość wyrażenia arcsin(::4(2)-l-arcsi
19 4 Instrukcje ba

więcej podobnych podstron