10

10



5. Instiukcic arytmetyczne 53

Przykład:

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

Mul Ali:

MOV A,#1RD    ;A e= #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 ,i znaczników; C = 0, OV ■ 1, P = 0

DA a    Decimal Adjust Accumulator forAddition

l?rfohmr.    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 <= A7..A4 + 6

Xhruncanic Mnemonik:


Struktura bajtów:


Cykle

maszynowe


rejestrowe:


DA A


1 1 0 1 | 0 1 0 0~|


1


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ść fi 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.    ’ v .

Jcśłr 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

A

c= A-t

Decrement

Rn

<= Rn -1

Działanie

(adr)

c= (adr) -1

(Ri)

e= (Ri) - 1

Adresowanie Mnemonik

Struktura bajtów.

Cykle Znacz-maszynowe niki:

Przykład 1:

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

Dcc.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śa adresów (stosować instrukcję INC DPTR). Dekrementację wskaźnikowego rejestru danych (DPTR) należy potraktować jako odejmowanie jednośd od zmiennej 2 bajtowej ponieważ instrukcja DEC <bajt> nie zmienia wskaźnika przeniesienia (O:

Mikrokontroler 80(C)5l - programowanie

rejestrowe:

DEC

A

nr

0

0

jJjL

1

0

°l

1

P

rejestrowe:

DEC

Rn

0

0

0

J±L

r

r

_lI

1

-

bezpośrednie:

DEC

adr

0

0

0

1 |o

1

0

1

1

-

adr

pośrednie:

DEC

@Ri

L°_

0

0

1 0

1

1

jJ

1

-

Opis działania:


Zmniejszenie o jeden zmiennej zawarte) w:

•    akumulatorze (A),

•    rejestrze Rn, Rn=R0..R7,

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

•    komórce wewnęttznej pamięci RAM adresowanej pośrednio rejestrem Ri,

Ri 3 RO lub Rl.



Wyszukiwarka

Podobne podstrony:
10 5 instrukcje arytmetyczne 53 Przykład: Mnożenie dwóch stałych o wartościach lfiD i 29D: Mul Ali:
2011 10 26 29 53 Przykładowe kolokwium z WDAM 1. A Obliczyć wartość wyrażenia arcsin(::4(2)-l-arcsi
10 BO 6. Połączenia zakładkowe na śruby i nity -z uwagi na ścięcie trzpienia przy dwóch płaszczyzna
10 Przykład 18.2
10 7. Połączenia doczołowe na śruby Na tym przykładzie widać, jak zwiększenie grubości f blachy czo
<Close>Comrade Snowball</Close> </Memo>Przykład DTD <?xml version=’1.0’
54813 zdj1 (7) Przykład mnożenia zmiennoprzecinkowego 4. Zaokrąglenie lub obcięcie: X = : 9.001
10 Rjs, 4+ Do przykl;i<Ui 4.3: u) 1 rugmcnt dliy/tt, h) pierścień skurczowi , c) kotwica (wg [19
10 Przykład 18.2 Przykład 18.2 Sprzęgło tulejo we kolkowe przeciążeniowe, łączy wały o średnicy d =
zdj0 (7) Przykład mnożenia zmiennoprzecinkowego 3. Renormalizacja mantysy: X = = 9.001 x 105 y

więcej podobnych podstron