10

10



6. Instrukcje 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 I:

Ą 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    Oear Accumulator

Działanie:    AcO

Adresouunic Mnemonik    Struktura bajtów:    Cykle    Znacz-

_ maszynowe niki:

rejestrowe:    CLR A


1 1 1 1 0 | 0 1 0 .0 | 1


P


Opis działania:

Zerowanie wszystkich bitów akumulatora j znacznika parzystości (P) w rejestrze słowa statusowego (PSW).

Mikrokontroler 80fCl5t - orooramowame

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-błtów o bajt zerowy.


só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 ;DPTR c= 3CDFH

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

MOV A,©A+DPTR ;A <= (A + DPTR) = (3D64H)

00111100 1101 HUB 1000 0101B

0000 0000


DPTR ■ 3CDFH-A -    85 H =

znakowe rozszerzenie A »

@A + DPTR =    3D64H =


0011 1101 0110 0100B


iana 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.

i



Wykorzystanie rozkazu MOVC A,OA+DPTR:

Hex_Asdi_Dptr:

ANL A,#0FH    ;A c= A and 0F11,

;zcrowanie czterech bardziej znaczących bitów


MOV DPTR,#Tab„Ascit

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

Tab_ASdi:


;deklaracja tablicy kodów ASCII


DB

DB


30H31 H^2H,33H^4H^5H,36H    1

38H,39H,41H,42H.43H,44H,45H.46H


Dalej:


;dalsza część programu

MiVrnVr>n(rr.lrr


Wyszukiwarka

Podobne podstrony:
10 6. Instrukcję 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