31
Inštrukcie pre Inštrukcie pre prenos dát prenos dát Všeobecný tvar : Všeobecný tvar : MOV MOV X,Y X,Y Vždy 2 operandy X Vždy 2 operandy X Y Y Hodnota z druhého operandu sa Hodnota z druhého operandu sa zapíše do prvého operandu zapíše do prvého operandu

Inštrukcie pre prenos dát

Embed Size (px)

DESCRIPTION

Inštrukcie pre prenos dát. Všeobecný tvar : MOVX,Y Vždy 2 operandy X  Y Hodnota z druhého operandu sa zapíše do prvého operandu. Inštrukcie pre prenos dát. MOV@Ri,#data i=0; 1 @Ri - nepriame adresovanie pamäti dát. Na indexovanie pamäti sa môžu použiť len 2 registre R0 a R1 - PowerPoint PPT Presentation

Citation preview

Page 1: Inštrukcie pre prenos dát

Inštrukcie pre prenos dátInštrukcie pre prenos dát

Všeobecný tvar :Všeobecný tvar :

MOVMOV X,YX,Y

Vždy 2 operandy XVždy 2 operandy X Y Y

Hodnota z druhého operandu sa Hodnota z druhého operandu sa zapíše do prvého operanduzapíše do prvého operandu

Page 2: Inštrukcie pre prenos dát

Inštrukcie pre prenos dátInštrukcie pre prenos dát

MOVMOV @Ri,#data@Ri,#data

i=0; 1i=0; 1

@Ri @Ri - nepriame adresovanie pamäti dát.- nepriame adresovanie pamäti dát. Na indexovanie pamäti sa môžu použiť Na indexovanie pamäti sa môžu použiť

len 2 registre R0 a R1len 2 registre R0 a R1

datadata = 8-bitové číslo (0-255, 0-FF) = 8-bitové číslo (0-255, 0-FF)Prakticky môže mať inštrukcia tvar:Prakticky môže mať inštrukcia tvar:

MOVMOV @R1,#50@R1,#50Číslo 50 sa presunie do vnútornej pamäti Číslo 50 sa presunie do vnútornej pamäti

dát na takú adresu, aká je zapísaná v dát na takú adresu, aká je zapísaná v registri R1registri R1

Page 3: Inštrukcie pre prenos dát

Inštrukcie pre prenos dátInštrukcie pre prenos dát

MOVMOV A,RrA,Rr

AA Rr Rrr = 0;1; 2; ... 7r = 0;1; 2; ... 7

Príklad:Príklad:

A=A=3535 R5=150R5=150 -pred -pred MOVMOV A,R5A,R5A=A=150150 R5=150 R5=150 -po-po

Hodnota z registra R5 sa zapíše do Hodnota z registra R5 sa zapíše do akumulátoraakumulátora

Page 4: Inštrukcie pre prenos dát

Inštrukcie pre prenos dátInštrukcie pre prenos dát

MOVMOV Rr,ARr,A

Rr Rr AAPrPríklad:íklad:

R2= R2= 1010 A= 5A= 5 -pred-pred

MOVMOV R2,AR2,A

R2= R2= 55 A= 5A= 5 -po-po

Hodnota z akumulátora sa presunie do Hodnota z akumulátora sa presunie do registra R2registra R2

Page 5: Inštrukcie pre prenos dát

Inštrukcie pre prenos dátInštrukcie pre prenos dát

MOVMOV A,data addrA,data addr

data adddata addrr- - 8-bitová adresa 8-bitová adresa vnútornej pamäti dátvnútornej pamäti dát

A A Vnútorná pamäť d Vnútorná pamäť dáátt PrPríklad: MOVíklad: MOV A,30A,30

Číslo, ktoré je uložené vo vnútornej pamäti Číslo, ktoré je uložené vo vnútornej pamäti dát na adrese 30, sa zapíše do dát na adrese 30, sa zapíše do

akumulátora.akumulátora.

Page 6: Inštrukcie pre prenos dát

Inštrukcie pre prenos dátInštrukcie pre prenos dát

MOVMOV data addr,A data addr,A

Vnútorná pamäť dVnútorná pamäť dáát t A A

PrPríklad: MOVíklad: MOV 40,A40,A

Obsah akumulátora sa zapíše do vnútornej Obsah akumulátora sa zapíše do vnútornej pamäte dát na adresu 40. Adresa je udaná pamäte dát na adresu 40. Adresa je udaná

priamo.priamo.

Page 7: Inštrukcie pre prenos dát

Inštrukcie pre prenos dátInštrukcie pre prenos dát

MOVMOV @Ri,A@Ri,A

Vnútorná pamäť dat Vnútorná pamäť dat A APrPríklad:íklad:

A= 30A= 30 R0= 15R0= 15 na adrese 15 vo na adrese 15 vo v.p.d= v.p.d= 4545

MOVMOV @R0,A@R0,A

A= 30A= 30 R0= 15R0= 15 na adrese 15 vo na adrese 15 vo v.p.d= v.p.d= 3030

Hodnota z akumulátora sa presunie do Hodnota z akumulátora sa presunie do pamäte dát na adresu, ktorá je zapísaná v pamäte dát na adresu, ktorá je zapísaná v

registri R0registri R0

Page 8: Inštrukcie pre prenos dát

Inštrukcie pre prenos dátInštrukcie pre prenos dát

MOVMOV A,@RiA,@Ri

A A Vnútorná pamäť dát Vnútorná pamäť dát PrPríklad:íklad:

A= A= 3030 R0= 15R0= 15 na adrese 15 vo na adrese 15 vo v.p.d= 45v.p.d= 45

MOVMOV A,@R0A,@R0

A= A= 4545 R0= 15R0= 15 na adrese 15 vo na adrese 15 vo v.p.d= 45v.p.d= 45

Do akumulátora sa zapíše hodnota z v.p.d. Do akumulátora sa zapíše hodnota z v.p.d. z adresy, ktorá je zapísaná v registri R0z adresy, ktorá je zapísaná v registri R0

Page 9: Inštrukcie pre prenos dát

Inštrukcie pre prenos dátInštrukcie pre prenos dát

MOVMOV A,#dataA,#data

A A d dáátataPrPríklad:íklad:

A= A= 3535 -pred-predMOVMOV A,#70A,#70A= A= 7070 -po-po

Do akumulátora sa uloží číslo 70Do akumulátora sa uloží číslo 70

Page 10: Inštrukcie pre prenos dát

Inštrukcie pre prenos dátInštrukcie pre prenos dát

MOVMOV data addr,Rrdata addr,Rr

Vnútorná pamäť dát Vnútorná pamäť dát Rr Rr

PrPríklad: MOVíklad: MOV 60,R4 60,R4

Hodnota z registra R4 sa zapíše do v.p.d. Hodnota z registra R4 sa zapíše do v.p.d. na adresu 60.na adresu 60.

Page 11: Inštrukcie pre prenos dát

Inštrukcie pre prenos dátInštrukcie pre prenos dát

MOVMOV Rr,data addrRr,data addr

Rr Rr Vnútorná pamäť dát Vnútorná pamäť dát

PrPríklad: MOVíklad: MOV R3,120R3,120

Hodnota z v.p.d. na adrese 120 sa zapíše Hodnota z v.p.d. na adrese 120 sa zapíše do registra R3.do registra R3.

Page 12: Inštrukcie pre prenos dát

Inštrukcie pre prenos dátInštrukcie pre prenos dát

MOVMOV Rr,#dataRr,#data

Rr Rr d dáátata

PrPríklad: MOVíklad: MOV R2,#8R2,#8

Číslo 8 sa zapíše do registra R2.Číslo 8 sa zapíše do registra R2.

Page 13: Inštrukcie pre prenos dát

Inštrukcie pre prenos dátInštrukcie pre prenos dát

MOVMOV data addr,data addrdata addr,data addr

Vnútorná pamäť dátVnútorná pamäť dátVV.p.d..p.d. Číslo z v.p.d. sa zapíše do v.p.d. na iné Číslo z v.p.d. sa zapíše do v.p.d. na iné

pamäťové miestopamäťové miesto

PrPríklad: MOVíklad: MOV 10,1510,15

Hodnota z v.p.d. na adrese 15 sa zapíše do Hodnota z v.p.d. na adrese 15 sa zapíše do v.p.d. na adresu 10.v.p.d. na adresu 10.

Page 14: Inštrukcie pre prenos dát

Inštrukcie pre prenos dátInštrukcie pre prenos dát

MOVMOV data addr,@Ri data addr,@Ri

Vnútorná pamäť dátVnútorná pamäť dátVV.p.d..p.d. Číslo z v.p.d. sa zapíše do v.p.d. na iné Číslo z v.p.d. sa zapíše do v.p.d. na iné

pamäťové miestopamäťové miesto

PrPríklad: MOVíklad: MOV 50,@R150,@R1

Hodnota z v.p.d. na adrese, ktorá je Hodnota z v.p.d. na adrese, ktorá je uložená v registri R1 sa zapíše do v.p.d. na uložená v registri R1 sa zapíše do v.p.d. na

adresu 50.adresu 50.

Page 15: Inštrukcie pre prenos dát

Inštrukcie pre prenos dátInštrukcie pre prenos dát

MOVMOV @Ri,data addr@Ri,data addr

Vnútorná pamäť dátVnútorná pamäť dátVV.p.d..p.d. Číslo z v.p.d. sa zapíše do v.p.d na iné Číslo z v.p.d. sa zapíše do v.p.d na iné

pamäťové miestopamäťové miesto

PrPríklad: MOVíklad: MOV @R0 ,70 @R0 ,70

Hodnota z v.p.d. na adrese 70 sa zapíše do Hodnota z v.p.d. na adrese 70 sa zapíše do v.p.d. na adresu, ktorá je uložená v v.p.d. na adresu, ktorá je uložená v

registri R0registri R0

Page 16: Inštrukcie pre prenos dát

Inštrukcie pre prenos dátInštrukcie pre prenos dát

MOVMOV data addr,#datadata addr,#data

Vnútorná pamäť dát Vnútorná pamäť dát d dáátata

Číslo sa zapíše do v.p.d.Číslo sa zapíše do v.p.d.

PrPríklad: MOVíklad: MOV 20,#70 20,#70

Číslo 70 sa zapíše do v.p.d. na adresu 20.Číslo 70 sa zapíše do v.p.d. na adresu 20.

Page 17: Inštrukcie pre prenos dát

Inštrukcie pre prenos dátInštrukcie pre prenos dát

MOVMOV C,bit addrC,bit addr

bit addbit addrr - - 8-bitová adresa bitu 8-bitová adresa bitu vo v.p.d.vo v.p.d.

C - C - carry bitcarry bit

C C bit z vnútornej bit z vnútornej bitovej bitovej pamätpamätee dát dát Príklad: MOVPríklad: MOV C,50C,50

Bit z vnútornej bitovej pamäte dát na Bit z vnútornej bitovej pamäte dát na adrese 50 sa zapíše do carry bitu.adrese 50 sa zapíše do carry bitu.

Page 18: Inštrukcie pre prenos dát

Inštrukcie pre prenos dátInštrukcie pre prenos dát

MOVMOV bit addr,Cbit addr,C

bit bit vovo vnút vnút.. bitovej bitovej ppam.am. dát dát C C

Príklad: MOVPríklad: MOV 30,C30,C

Carry bit sa zapíše do vnútornej bitovej Carry bit sa zapíše do vnútornej bitovej pamäti dát na adresu 30pamäti dát na adresu 30

Page 19: Inštrukcie pre prenos dát

Inštrukcie pre prenos dátInštrukcie pre prenos dát

MOVMOV DPTR,DPTR,##data 16data 16

data 16- data 16- 16-bitové číslo16-bitové číslo

DPTR - DPTR - 16-bitový ukazovateľ 16-bitový ukazovateľ dát (data pointer)dát (data pointer)

DPTR DPTR 16-bitové číslo 16-bitové číslo PrPríklad: MOVíklad: MOV DPTR,#50000DPTR,#50000

Číslo 50000 sa zapíše do 16-bitového Číslo 50000 sa zapíše do 16-bitového registra DPTRregistra DPTR

Page 20: Inštrukcie pre prenos dát

Inštrukcie pre prenos dátInštrukcie pre prenos dát

MOVCMOVC A,@A+DPTRA,@A+DPTR

A A pamäť programu pamäť programu

Do akumulátora vloDo akumulátora vložží í hodnotu zhodnotu z pamäti pamäti programprogramuu, ktorej adresu získame ako súčet , ktorej adresu získame ako súčet

obsahu akumulátora a registra DPTRobsahu akumulátora a registra DPTR

Page 21: Inštrukcie pre prenos dát

Inštrukcie pre prenos dátInštrukcie pre prenos dát

MOVCMOVC A,@A+PCA,@A+PC

PC- PC- programový čítač (program programový čítač (program counter)counter)

A A pamäť programu pamäť programu

Do akumulátora vloDo akumulátora vložží í hodnotu zhodnotu z pamäti pamäti programuprogramu, ktorej adresu získame ako súčet , ktorej adresu získame ako súčet

obsahu akumulátora a registra obsahu akumulátora a registra PCPC

Page 22: Inštrukcie pre prenos dát

Inštrukcie pre prenos dátInštrukcie pre prenos dát

MOVXMOVX A,@RiA,@Ri

A A vonkajšia pamäť dát vonkajšia pamäť dát

Príklad: MOVPríklad: MOV A,@R1A,@R1

Obsah z externej pam. dát z adresy Obsah z externej pam. dát z adresy zapísanej v registrzapísanej v registrii R1 sa zapíše do R1 sa zapíše do

akumulátoraakumulátora

Page 23: Inštrukcie pre prenos dát

Inštrukcie pre prenos dátInštrukcie pre prenos dát

MOVXMOVX @Ri,A @Ri,A

vonkajšia pamäť dát vonkajšia pamäť dát A APríklad: MOVXPríklad: MOVX @R0,A@R0,A

Hodnota z akumulátora sa zapíše Hodnota z akumulátora sa zapíše do externej pam. dát na adresu do externej pam. dát na adresu

zapísanú v registrzapísanú v registri i R0R0

Pomocou týchto dvoch príkazov Pomocou týchto dvoch príkazov nemôžeme zapisovať do celej nemôžeme zapisovať do celej

pamäti ale iba do 256 bpamäti ale iba do 256 byytov čo je tov čo je ¼ kB.¼ kB.

Page 24: Inštrukcie pre prenos dát

Inštrukcie pre prenos dátInštrukcie pre prenos dát

MOVXMOVX A,@DPTRA,@DPTR

AA externá pamäť dát externá pamäť dát Do akumulátora vloží hodnotu z externej Do akumulátora vloží hodnotu z externej

pam. pam. ddátát,, ktorej adre ktorej adressa je uložená v a je uložená v 16-bitovom registr16-bitovom registrii DPTR DPTR

Page 25: Inštrukcie pre prenos dát

Inštrukcie pre prenos dátInštrukcie pre prenos dát

MOVXMOVX @DPTR,A@DPTR,A

externá pamäť dátexterná pamäť dát AA

Obsah akumulátora vloží do externej pam. Obsah akumulátora vloží do externej pam. ddátát,, ktorej adresa je ulo ktorej adresa je uložženenáá v 16-bitovom v 16-bitovom

registri DPTRregistri DPTR

Page 26: Inštrukcie pre prenos dát

Inštrukcie pre prenos dátInštrukcie pre prenos dát

PUSHPUSH data addrdata addr

Uloženie do zásobníkaUloženie do zásobníkaSP=SP+1SP=SP+1

Príklad: PUSHPríklad: PUSH 5050

Najprv inkrementuje obsah ukazovateľa Najprv inkrementuje obsah ukazovateľa zásobníka SP a na takto získanú adresu v zásobníka SP a na takto získanú adresu v zásobníku umiestni obsah v.p.d. z adresy zásobníku umiestni obsah v.p.d. z adresy

5050

Page 27: Inštrukcie pre prenos dát

Inštrukcie pre prenos dátInštrukcie pre prenos dát

POPPOP data addrdata addr

Výber zo zásobníkaVýber zo zásobníkaSP=SP-1SP=SP-1

Príklad: POPPríklad: POP 3030

Vyberie hodnotu zo zásobníka a uloží ju Vyberie hodnotu zo zásobníka a uloží ju do v.p.d. na adresu 30. Obsah do v.p.d. na adresu 30. Obsah ukazovateľa zásobníka SP je ukazovateľa zásobníka SP je

dekrementovanýdekrementovaný

Page 28: Inštrukcie pre prenos dát

Inštrukcie pre prenos dátInštrukcie pre prenos dát

XCHXCH A,RrA,Rr

A ↔ RrA ↔ RrPríklad:Príklad:

A=A=4040 R5=R5=6060 -pred-predXCHXCH A,R5A,R5A=A=6060 R5=R5=4040 -po-po

Vzájomne vymení hodnoty akumulátora a Vzájomne vymení hodnoty akumulátora a registra R5registra R5

Page 29: Inštrukcie pre prenos dát

Inštrukcie pre prenos dátInštrukcie pre prenos dát

XCHXCHA,data addrA,data addr

A ↔ vnútorná pamäť dátA ↔ vnútorná pamäť dátPríklad:Príklad:

A=A=2020 v.p.d. na adrese 30=v.p.d. na adrese 30=4040 -- predpredXCHXCH A,30A,30A=A=4040 v.p.d. na adrese 30=v.p.d. na adrese 30=2020 -- popo

Vzájomne vymení hodnoty Vzájomne vymení hodnoty akumulátora a hodnoty z akumulátora a hodnoty z

v.p.d. na adrese 30v.p.d. na adrese 30

Page 30: Inštrukcie pre prenos dát

Inštrukcie pre prenos dátInštrukcie pre prenos dát

XCHXCH A,@RiA,@Ri

A ↔ vnútorná pamäť dátA ↔ vnútorná pamäť dát

Príklad: XCHPríklad: XCH A,@R1A,@R1

Vzájomne vymení hodnoty akumulátora a Vzájomne vymení hodnoty akumulátora a hodnoty z v.p.d. z adresy uloženej vhodnoty z v.p.d. z adresy uloženej v

registri R1registri R1

Page 31: Inštrukcie pre prenos dát

Inštrukcie pre prenos dátInštrukcie pre prenos dát

XCHDXCHD A,@RiA,@Ri

A A 0÷30÷3↔číslo vo vnút. pamäti dát ↔číslo vo vnút. pamäti dát 0÷30÷3

Príklad: XCHD A,@R0

Vzájomne vymení prvé 4 bity v Vzájomne vymení prvé 4 bity v akumulátore a čísla vo v.p.d.,akumulátore a čísla vo v.p.d.,

ktorého adresa je zapísaná v registri R0ktorého adresa je zapísaná v registri R0