Upload
julian-murphy
View
84
Download
1
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
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
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
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
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
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.
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.
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
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
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
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.
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.
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.
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.
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.
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
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.
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.
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
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
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
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
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
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.
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
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
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
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ý
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
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
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
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