19

19



4 Instrukcje bajtowe) wymiany danych 39

Przykład:

Przesianie 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 Rl.fflCH

MOV P2.43H

Ha:

MOV A.ORO MOVX ©Rl.A INC RO INC R1 DJNZ R2.Pla


X0 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 <= ICH, mniej znaczący bajt adresu zewnętrznej pamięci RAM (431CH)

P2 c= 43H, bardziej znaczący bajt adresu zewnętrznej pamięd RAM (431CH)

,pobranie bajtu z wewnętrznej pamięci RAM ;przeslanie bajtu do zewnętrznej pamięd 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)ęoDE L (A + PClęoDE


dotyczy tylko pamięci kodu programu


Adresowanie Mnemonik:    Struktura bajtów.    Cykle    Znacz-

_*_ maszynowe niki:

indeksowe:

MOVC

A,©A+DPTR

o

o

o

o

—•

2

P

indeksowe:

MOVC

A,@A+PC

o

o

o

o

o

2

P

Opis działania:

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

•    wskaźnikowego rejestru danych (DPTR),

•    licznika rozkazów (PO.

Przykład:

Zerowanie akumulatora można zrealizować trzema sposobami:

CJr.AJ:

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

;    w 1 cyklu maszynowym

lub

Clr_A_Ł

CLR    A    ;Ac=0, instrukacja 1-bajtowa, wykonywana

;    w 1 cyklu maszynowym

lub

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

i CPL A


Działanie:


Complement Accumulator

A c: not A

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

maszynowe:    ntki:

rejestrowe:    CPL A


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


Opis działania:

Negacja wszystkich bitów akumulatora.

Przykład:

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

adresy w wewnętrznej pamięd RAM:


49H 27H = 0010 0111B 48H 10H = 0001 000GB


bajt bardziej znaczący bajt mniej znaczący


Liczba » ♦lO 000D = 2710H - 0010 0111 0001 0000B - Liczba - - 10 000D = 0D8F0H = 1101 1000 1111 OOOOH = NOT(Liczba) + I


Wyszukiwarka

Podobne podstrony:
19 4 Instrukcje ba
19 4. Instrukcje bajtowej wymiany danych 29 Grupa rozkazów MOVX dotyczy wymiany danych między mikro
17 4. Instrukcję bajtowe) wymiany danych 37 Instrukcja XCHD stosowana jest do zamiany kodu BCD na i
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
13 4 Instrukcje bajtowej wymiany danych 33 i komórki wewnętrznej pamięci KAM o adresie SOH: Mov_RAM
15 4 Instrukcje bajtowej wymiany danych 35 Pop_DPTR: POP DPH    ;DPH c= (SP) = 56H,
11 •1 Instrukcje bajtowej wymiany danych
19 S Instrukcje arytmetyczne 49 Opis działania: Odejmowanie od zawartości akumulatora (A) znacznika
11 4. Instrukcje hakowej wymiany danych 31 Adresowanie:
10 Dodatek B. Lisia instrukcji wg typów 93Dodatek B. Lista instrukcji wg typów Instrukcje bajtowej
11 4. Instgjkc)c bajtowe) wymiany danych 31 4. Instgjkc)c bajtowe) wymiany danych
10 Dodatek B Lisia msmikgi wg typów 93Dodatek B. Lista instrukcji wg typów Instrukcje bajtowej wymi

więcej podobnych podstron