10

10



6. Instrukcję logiczne 63

wynik operacji przesyłany jest do akumulatora (A).

• 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ęci RAM o adresie adr.

Przykład J:

-f Negacja logiczna bitów akumulatora: A7, A3 i A#

Maska DB 10001001B .-jedynka logiczna na pozycji negowanego bitu Xrl_R4:

XRL A.SMaska    ;A <= A xor Maska

A» 11011011B maska = 10001001B A xor maska = 0101 0010B

Przykład 2:

Zerowanie akumulatora:

Xrl_A:

XRL A.0E0H    ;Ac= A xor (0E0H), akumulator ma adres 0E0H

CLR A

Clcar Accumulator

Działanie

AcO

Adresowanie

Mnemonik: Struktura bajtów:

Cykle Znacz-

maszynowe niki:

rejestrowe:

CLR A - 1

1 1 0 | 0

1 0 ,0 1 P

Opis działania:

Zerowanie

wszystkich bitów akumulatora

znacznika parzystości (P) w rejestrze

słowa statusowego (PSW).

Mikrokontroler 80<Cl5l - ornaramowamc

W trakcie obliczania adresu zawartość akumulatora (A) traktowana jest jako liczba całkowita bez znaku. Ze względu na 16-bitową długość wskaźnikowego rejestru danych (DPTR) lub licznika rozkazów (PO, 8-bitowy akumulator (A) rozszerzany jest znakowo do 16-bitów o bajt zerowy.

«/^5posób obliczanie 16-bitowego adresu jako złożenia 8-bitowej wartości akumulatora (A) i 16-bitowej wartości wskaźnikowego rejestru danych (DPTR):

MOV DPTR,#3CDFH    ;DPTRc=3CDFH

MOV A.#85H .    ;A c=85H

MOV A.GA+DPTR ;A <= (A + DPTR) = (3D64H)

DPTR - 3CDFH- 0011 1100 1101 1111B A- 85H =    1000 0101B

znakowe rozszerzenie A =_0000 0000_

@A + DPTR =    3D64H = 0011 1101 0110 0100B

.Pr^iadi-

'g Zamiana liczby zapisanej w kodzie szestnastkowym na kod ASCII z wykorzystaniem tablicy kodów ASCII. Tłumaczone są cztery mniej znaczące bity akumulatora, a wynik tłumaczenia znajduje się w akumulatorze.

Wykorzystanie rozkazu MOVC A,@ A+DPTR:

Hex_AscH„Dptn

ANL A,#0FH    ;A c= A and 0R1.

;zcrowanie czterech bardziej znaczących bitów MOV DPTR,#Tab_Ascii

MOVC A,@A+DPTR ;A <= (A + DPTR ). z pamięci kodu programu SJMP Dalej    ;ominięde tablicy Tab_Ascii

Tab_Aśdi:    ;deklaracja tablicy kodów ASCII

DB 30H31H,32H,33H,34H,35H,36H,37H DB 38H,39H,41H,42H,43H,44H,45H.46H

Dalej: —................................. ;dalsza część programu

MtVro\rr>n*r^l»-r


Wyszukiwarka

Podobne podstrony:
10 6. Instrukcje logiczne 63 wynik operacji przesyłany jest do akumulatora (A). • komórki wewnętrzn
12 o Instrukcje logiczni 61 wynik operacji przesyłany jest do akumulatora, • komórki wewnętrznej pa
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ę
10 7 Instrukcje skoków i wywołań podprogramów 83 CALL adr    CALL Uncondilional Dzia
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ść
10 5 instrukcje arytmetyczne 53 Przykład: Mnożenie dwóch stałych o wartościach lfiD i 29D: Mul Ali:
10 7 Instrukcje skoków i wywołań podprogramów 73 AJMP Procedura_2 ;skok do Procedury 2 AJMP
16 6 Instrukcje logiczne 57 W akumulatorze znajduje się wartość 40H«*64D. a nie poprawna wartość 0C

więcej podobnych podstron