19

19



5 Instrukcje aryimctyczni e

Opis działania:

Odejmowanie od zawartości akumulatora (A) znacznika przeniesienia (O i zawartości:

•    rejestru Rn, Rn«R7..R0,

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

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

R1 - RO lub Rl.

•    8 bitowej danej.

Wynik dodawania przesiany jest do akumulatora (A). Znaczniki C, AC i OV przyjmują następujące wartości:

C ■ 1 jeśli odejmowanie bitu 7 odbyło się z pożyczką, C » 0 jeśli warunek nie jest spełniony,

AC = 1 jcśU odejmowanie bitu 3 odbyło się z pożyczką, AC » 0 jeśli warunek nie jest spełniony,

OV ■ 1 jeśli odejmowanie bitu 6 odbyło się z pożyczką i odejmowanie bitu 7 odbyło się bez pożyczki lub

jeśli odejmowanie bitu 6 odbyło się bez pożyczki i odejmowanie bitu 7 “ odbyło się z pożyczką,

OV = 0 jeśli warunki nie są spełnione.

Znacznik przeniesienia (O sygnalizuje przekroczenie zakresu liczb całkowitych bez znaku (0..255), a znacznik nadmiaru OV przekroczenie zakresu liczb całkowitych ze znakiem (-128..+127).

Odejmowanie dwóch zmiennych 2-bajtowych zawartych w komórkach pamięci RAM o adresach 30H i 40H. Różnica przesyłana jest w miejsce drugiej zmiennej. Obie wartości traktowane są jako liczby całkowite bez znaku:

Subb_Dana_16:


MOV Rl,#4lH


MOV A.31H


CLR C SUBB A,@RMOV @R1,A


;R1 <= 41H adresuje mniej znacząc)'

;    bajt drugiej zmiennej

;A c= (31H), przesłanie mniej znaczącego

;    bajtu pierwszej zmiennej

,<I c= 0,    zerowanie znacznika przeniesienia C


;Ac= A-C-(Rl)


DEC Rl

MOV A,30H


;(Rl) <= A.    przesłanie mniej znaczącego bajtu

;    różnicy

;R1 <= Rl -1, KI = 40H


SUBB A,®R1 MOV ®Rl.A


A c= (3011), przesłanie bardziej znaczącego bajtu pierwszej zmiennej


'    r

;A<= A-C-(Rl)


;(Rl) <= A.    przesłanie bardziej znaczącego bajtu

;    różnicy


Instrukcji DA A nie stosuje się przy odejmowaniu liczb zapisanych w kodzie BCD. nie może być również stosowana do bezpośredniej zamiany kodu liczby z szestnas-v-t j    tkowego na BCD.

Przykiad:

Dodawanie dwóch liczb zapisanych w kodzie BCD znajdujących się w rejestrach R3 (wartość 38) i R4 (wartość 86):

Dod_BCD*.

- :    MOV A.R3    ;A <= R3

ADD A.R4    ;A <= A ♦ R4

i    ;R3    -    38H    -    0011    1000B

;•    _ ;R4.    - 86H - 1000 0110B

.*//.•    ; A    -    0BEH    =    1011    HIOB    C-O.AC-O

• •• • '    DA    A    ;korekcja dziesiętna,

;    .    ponieważ A3..A0 > 9 to A <= A + 6

i A    »    0BEH    -    1011    1110B

;    6H =» 0000 011 OB

; A    -    0C4H    =    1100    0100B    C»0

;korekcja dziesiętna,

;ponieważ A7..A4 > 9 to A c= A ♦ 60H ; A    =    0C4H    »    1100    0100B

;    60H « 0110 0000B

; A    -    024H    -    0100    0100B    C = 1

Ustawienie znacznika przeniesienia C » 1 po instrukcji korekcji dziesiętnej DA A świad-czy o przekroczeniu zakresu liczb 0..99. Znacznik wskazuje na brak w wyniku setek.

! Prawidłowy wynik dodawania po uwzględnieniu znacznika przeniesienia (C) wynosi

: : *•: * 124.

MilrroWonfrotrr 8fVC\5l . nrr>c>ramow>n<^


Wyszukiwarka

Podobne podstrony:
19 S Instrukcje arytmetyczne 49 Opis działania: Odejmowanie od zawartości akumulatora (A) znacznika
19 5. Instruktaż na stanowisku roboczym i nadzór nieprawidłowości jego powinny być od razu powiązan
19 4. Instrukcje bajtowej wymiany danych 29 Grupa rozkazów MOVX dotyczy wymiany danych między mikro
19 4 Instrukcje ba
19 Przełożenie .kinematyczne różni się nieznacznie od geometrycznego (m. in. ze względu na poślizgi
19 4 Instrukcje bajtowe) wymiany danych 39 Przykład: Przesianie zawartości czterech banków rejestró
84419 zdj4 (5) Instrukcja    Opis działania I LOAD przesyła zawartość komórki INI
14 6. Instrukcie logiczne 59 iloczyn przesyłany jest do akumulatora (A), • komórki wewnętrznej pami
15 5 Instrukcje arytmetyczne 45 ;Ac= 12H ;A<= A ♦ R7 = 7AH .znaczniki: C*0, AC»0, OV*0, P»l ADDC
ZF Bień9 Podstawowe cele i instrumenty zarządzania finansami 19 woju działalności firmy od chęci wi
gielda?rma 1str od t1 4. /) t Jr -    związki glinu mogą działać przeczyszczająco -
10 7 Instrukcje skoków i wywołań podprogramów 83 CALL adr    CALL Uncondilional Dzia

więcej podobnych podstron