19

19



4 Instrukcje ba | to wg wymiany danych 39

Przykład:

Przesłanie zawartości czterech banków rejestrów RB1..RB3, łącznie 24 bajtów, do zewnętrznej pamięci RAM od adresu początkowego 431CH. Program wykorzystuje rejestry RO, R1 i R2 z zerowego banku rejestrów RBO.

Mov_Int_Ext

MOV

R0,#8

MOV

R2,#24

MOV

R1,#lCH

MOV

P2.43H

Ra:

MOV

A,©R0

MOVX ©Rl.A

INC

RO

INC

R1

DJNZ

R2.Pla


;R0 c= 8, rejestr RO adresuje wewnętrzną pamięć RAM, kolejne rejestry w banku RB1..RB3 ;R2 c= 24, rejestr R2 jest licznikiem przesyłanych 3 * 8 = 24 rejestrów ;R1 c= ICH, mniej znaczący bajt adresu wewnętrznej pamięci RAM (431CH)

;P2 <= 43H, bardziej znaczący bajt adresu wewnętrznej pamięci RAM (431CH)

;pobranie bajtu z wewnętrznej pamięci RAM ;przesianie bajtu do zewnętrznej pamięci RAM przygotowanie do pobrania następnego bajtu przygotowanie do przesłania następnego bajtu ;R2 <= R2 -1, jeśli R2 * 0 to powtórzenie pętli przesłań

Move Codę


MOVC A.argument

Działanie


f(A + DPTR)ęoD£

L (a + pc)code


dotyczy tylko pamięci kodu programu


Adresowanie Mnemonik:    Struktura bajtów.    Cykle    Znacz-

maszynowe:

mki:

indeksowe:

MOVC

A,@A+DPTR

|T 0 0 1 0

n 2

P

indeksowe: Opis działania:

MOVC

A,@A+PC

| 1 0 0 0 | 0

0 1 1 1 2

P

Przesłanie do akumulatora (A) zawartości komórki pamięd kodu programu adresowanej sumą zawartości akumulatora (A) i:

•    wskaźnikowego rejestru danych (DPTR),

•    licznika rozkazów (PO.

Przykład:

Zerowanie akumulatora można zrealizować trzema sposobami:

CIr_AJ:

MOV A,#0    ;A c= 0,    instrukacja 2-bajtowa, wykonywana

;    w 1 cyklu maszynowym

lub

Clr_A_Ł

CLR    A    ;AcO, instrukacja 1-bajtowa, wykonywana

;    w 1 cyklu maszynowym

lub

jak w przykładzie 2 na stronie 63 wykorzystując instrukcję XRL A.0E0H.

CPL A


Działań u:


Complement Accumulator

A cc not A

Adresowanie:    Mnemonik:    Struktura bajtów:    Cykle    Ziuicz-

__ maszynowe:    tuki:

rejestrowe:    - CPL A


| 1 1 1 1 | 0 1 0 Ó1 1


Opis działania:

Negacja wszystkich bitów akumulatora.

Przykład:

Negacja arytmetyczna zmiennej Liczba=+10 U00D=2710H traktowanej jako 2 bajtowa liczba całkowita ze znakiem, z zakresu -32768..+32767, bajty rozmieszczone w wewnętrznej pamięci RAM jak na rysunku:

adresy w wewnętrznej pamięci RAM:


49H

48H


27H = 0010 0111B bajt bardziej znaczący 10H = 0001 000GB bajt mniej znaczący


Liczba » ♦lO 000D = 2710H - 00100111 UtX)l OOOOB - Liczba -= - 10 OUOD = ODMFOH = 1101 1000 1111 OOOOB = NOT(Liczba) + 1


Wyszukiwarka

Podobne podstrony:
19 4 Instrukcje bajtowe) wymiany danych 39 Przykład: Przesianie zawartości czterech banków rejestró
19 4. Instrukcje bajtowej wymiany danych 29 Grupa rozkazów MOVX dotyczy wymiany danych między mikro
13 4 Instrukcje ba
19 S Instrukcje arytmetyczne 49 Opis działania: Odejmowanie od zawartości akumulatora (A) znacznika
19 5 Instrukcje aryimctyczni e 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
WSiP7 PODSTAWY BAZ DANYCH 37 PRZYKŁAD 9.3 Prześledźmy tę teorię, posługując się przykładem:A
11 4. Instrukcje hakowej wymiany danych 31 Adresowanie:
17 4. Instrukcję bajtowe) wymiany danych 37 Instrukcja XCHD stosowana jest do zamiany kodu BCD na i
11 •1 Instrukcje bajtowej wymiany danych
17 4 Instrukcje bajtowe) wymiany danych 37 Instrukcja XCHD stosowana jest do zamiany kodu BCD na in
15 4 Instrukcje bajtowej wymiany danych 35 Pop_DPTR: POP DPH    ;DPH <= (SP) = 56

więcej podobnych podstron