17

17



4. Instrukcję bajtowe) wymiany danych 37

Instrukcja XCHD stosowana jest do zamiany kodu BCD na inny kod, np na kod ASCII. Kodom BCD w zakresie 0..9 odpowiadają kody ASCII w zakresie 30H..39H. Program zamienia mniej znaczącą część liczby w kodzie BCD znajdującej się w komórce wewnętrznej pamięd RAM o adresie zawartym w rejestrze Rl:

Bcd_Asdi_l: .

MOV A,#30H    ;A c= 30H

XCHD A.®R1    ;A3..0«<R1>3..0

Tłumaczona liczba zapisana w kodzie BCD jest niszczona.


Tablica z liczbami zapisanymi w kodzie BCD ma adres początkowy Adr_BCD i zajmuje N_BCD bajtów, a tablica z liczbami zapisanymi w kodzie ASCII ma adres początkowy Adr_ASCII i zajmuje 2*N BCD bajtów. Program dokonuje zamiany kodów liczb z BCD na ASCII:

Bcd_Asdi_N:

MOV RO.#Adr_BCD

;R0 c= Adr.BCD,

MOV

Rl,#Adr_ASClI

;rejestr RO adresuje tablicę z liczbami w kodzie BCD ;Rl <= Adr_ASCn.

MOV

R2.#N_BCD

.rejestr Rl adresuje tablicę z liczbami w kodzie ASCII ;R2 cr N_BCD,

MOV

A.I30H

.rejestr R2 jest licznikiem liczby tłumaczonych bajtów ;kodom BCD 0..9 odpowiadają kody ASCII

PI a: XCHD

>

1

o

;w zakresie 30H..39H

;początek powtórzenia fragmentu programu

'A3..0C^.(R0>3..0'

MOV

6R1.A

tłumaczenie mniej znaczących bitów ;(Rl) c= A,

XCH

A.@RO

;zapis przetłumaczonych mniej znaczących bitów ;A co (RO)

SWAP

A

'"A7..4 « A3..0

XCH

A.ORO

;A 0 (RO)

XCHD

A.@RO

'A3..0 <=> tR0)3..0

INC

Rl

;R1 <= Rl +1

MOV

SRl.A

(Rl) c= A

INC

RO

;zapis przetłumaczonych bardziej znaczących bitów ;R0 c= RO + 1

INC

Rl

;Rl c= Rl + 1

DJNZ

R2.Pla

;R2 c= R2 -1, jeśli R2 r 0 to skok do etykiety Pla

Mikrokontroler 80(051 - procramowanif'

Przykład:

Zamiana czterech mniej znaczących bitów z czterema bardziej znaczącymi bitami akumulatora, A = 1001 101 IB:

R1_A:

RL

A

;A c= 0011 0111B

RL

A

;A<= 0110 1110B

RL

A

;A c= 1101 1100B

RL

A

;A <= 10111001B

RLC A    Rotate Accumulator Letł through Carry

Działanie:    An+i c= An, n = 6..0

Aq C C <= A7

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

•    maszynowe:    iijJci:

rejestrowe:    RLC A    | 0 0 1    1 | 0 0    1 ~i~l 1 C. I*

Opis działania:

Zawartość akumulatora przesuwana jest cyklicznie w lewo o jeden bit, bit A(j przyjmuje wartość znacznika przeniesienia (C), a znacznik przeniesienia (C) wartość bitu A7. Sytuację tę przedstawia rysunek:

Przykład :

Mnożenie przez dwa 2-bajtowej liczby całkowitej bez znaku zawartej w rejestrach R6R7:

Doczyn_2:

CLR

C

,-C c= 0

MOV

A.R 7

;A <= R7, R7 zawiera mniej znaczący bajt

RLC

A

.przesunięcie w lewo zawartości A,

; A(j c= C. C ci Ay,

MOV

R7,A

;R7<= A

MOV

A.R6

;A <= R6. R6 zawiera bardziej znaczący baji


Wyszukiwarka

Podobne podstrony:
17 4 Instrukcje bajtowe) wymiany danych 37 Instrukcja XCHD stosowana jest do zamiany kodu BCD na in
19 4. Instrukcje bajtowej wymiany danych 29 Grupa rozkazów MOVX dotyczy wymiany danych między mikro
11 •1 Instrukcje bajtowej wymiany danych
15 4 Instrukcje bajtowej wymiany danych 35 Pop_DPTR: POP DPH    ;DPH <= (SP) = 56
17 -ł Instrukcje bano we; wymiany danych 27 -ł Instrukcje bano we; wymiany danych 27 MOV R4.0C4H MO
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,
19 4 Instrukcje bajtowe) wymiany danych 39 Przykład: Przesianie zawartości czterech banków rejestró
17 5. Instrukcje arytmetyczne 47 INC argument Increment Działanie: A <= A +1 Rn c= Rn + 1 (
11 4. Instgjkc)c bajtowe) wymiany danych 31 4. Instgjkc)c bajtowe) wymiany danych
17 5. Instruktaż na stanowisku roboczym i nadzór 227 Nowo przyjętych pracowników możemy podzielić n

więcej podobnych podstron