310 likes | 423 Views
Inštrukcie pre prenos dát. Všeobecný tvar : MOV X,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
E N D
Inštrukcie pre prenos dát Všeobecný tvar : MOV X,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 data = 8-bitové číslo (0-255, 0-FF) Prakticky môže mať inštrukcia tvar: MOV @R1,#50 Číslo 50 sa presunie do vnútornej pamäti dát na takú adresu, aká je zapísaná v registri R1
Inštrukcie pre prenos dát MOV A,Rr A Rr r = 0;1; 2; ... 7 Príklad: A=35 R5=150 -pred MOV A,R5 A=150 R5=150 -po Hodnota z registra R5 sa zapíše do akumulátora
Inštrukcie pre prenos dát MOV Rr,A Rr A Príklad: R2= 10 A= 5 -pred MOV R2,A R2= 5 A= 5 -po Hodnota z akumulátora sa presunie do registra R2
Inštrukcie pre prenos dát MOV A,data addr data addr- 8-bitová adresa vnútornej pamäti dát A Vnútorná pamäť dát Príklad: MOV A,30 Číslo, ktoré je uložené vo vnútornej pamäti dát na adrese 30, sa zapíše do akumulátora.
Inštrukcie pre prenos dát MOV data addr,A Vnútorná pamäť dát A Príklad: MOV 40,A Obsah akumulátora sa zapíše do vnútornej pamäte dát na adresu 40. Adresa je udaná priamo.
Inštrukcie pre prenos dát MOV @Ri,A Vnútorná pamäť dat A Príklad: A= 30 R0= 15 na adrese 15 vo v.p.d= 45 MOV @R0,A A= 30 R0= 15 na adrese 15 vo v.p.d= 30 Hodnota z akumulátora sa presunie do pamäte dát na adresu, ktorá je zapísaná v registri R0
Inštrukcie pre prenos dát MOV A,@Ri A Vnútorná pamäť dát Príklad: A= 30 R0= 15 na adrese 15 vo v.p.d= 45 MOV A,@R0 A= 45 R0= 15 na adrese 15 vo v.p.d= 45 Do akumulátora sa zapíše hodnota z v.p.d. z adresy, ktorá je zapísaná v registri R0
Inštrukcie pre prenos dát MOV A,#data A dáta Príklad: A= 35 -pred MOV A,#70 A= 70 -po Do akumulátora sa uloží číslo 70
Inštrukcie pre prenos dát MOV data addr,Rr Vnútorná pamäť dát Rr Príklad: MOV 60,R4 Hodnota z registra R4 sa zapíše do v.p.d. na adresu 60.
Inštrukcie pre prenos dát MOV Rr,data addr Rr Vnútorná pamäť dát Príklad: MOV R3,120 Hodnota z v.p.d. na adrese 120 sa zapíše do registra R3.
Inštrukcie pre prenos dát MOV Rr,#data Rr dáta Príklad: MOV R2,#8 Číslo 8 sa zapíše do registra R2.
Inštrukcie pre prenos dát MOV data addr,data addr Vnútorná pamäť dátV.p.d. Číslo z v.p.d. sa zapíše do v.p.d. na iné pamäťové miesto Príklad: MOV 10,15 Hodnota z v.p.d. na adrese 15 sa zapíše do v.p.d. na adresu 10.
Inštrukcie pre prenos dát MOV data addr,@Ri Vnútorná pamäť dátV.p.d. Číslo z v.p.d. sa zapíše do v.p.d. na iné pamäťové miesto Príklad: MOV 50,@R1 Hodnota z v.p.d. na adrese, ktorá je uložená v registri R1 sa zapíše do v.p.d. na adresu 50.
Inštrukcie pre prenos dát MOV @Ri,data addr Vnútorná pamäť dátV.p.d. Číslo z v.p.d. sa zapíše do v.p.d na iné pamäťové miesto Príklad: MOV @R0 ,70 Hodnota z v.p.d. na adrese 70 sa zapíše do v.p.d. na adresu, ktorá je uložená v registri R0
Inštrukcie pre prenos dát MOV data addr,#data Vnútorná pamäť dát dáta Číslo sa zapíše do v.p.d. Príklad: MOV 20,#70 Číslo 70 sa zapíše do v.p.d. na adresu 20.
Inštrukcie pre prenos dát MOV C,bit addr bit addr - 8-bitová adresa bitu vo v.p.d. C - carry bit C bit z vnútornej bitovej pamäte dát Príklad: MOV C,50 Bit z vnútornej bitovej pamäte dát na adrese 50 sa zapíše do carry bitu.
Inštrukcie pre prenos dát MOV bit addr,C bit vo vnút.bitovej pam. dát C Príklad: MOV 30,C Carry bit sa zapíše do vnútornej bitovej pamäti dát na adresu 30
Inštrukcie pre prenos dát MOV DPTR,#data 16 data 16- 16-bitové číslo DPTR - 16-bitový ukazovateľ dát (data pointer) DPTR 16-bitové číslo Príklad: MOV DPTR,#50000 Číslo 50000 sa zapíše do 16-bitového registra DPTR
Inštrukcie pre prenos dát MOVC A,@A+DPTR A pamäť programu Do akumulátora vloží hodnotu z pamätiprogramu, ktorej adresu získame ako súčet obsahu akumulátora a registra DPTR
Inštrukcie pre prenos dát MOVC A,@A+PC PC- programový čítač (program counter) A pamäť programu Do akumulátora vloží hodnotu zpamäti programu, ktorej adresu získame ako súčet obsahu akumulátora a registra PC
Inštrukcie pre prenos dát MOVX A,@Ri A vonkajšia pamäť dát Príklad: MOV A,@R1 Obsah z externej pam. dát z adresy zapísanej v registri R1 sa zapíše do akumulátora
Inštrukcie pre prenos dát MOVX @Ri,A vonkajšia pamäť dát A Príklad: MOVX @R0,A Hodnota z akumulátora sa zapíše do externej pam. dát na adresu zapísanú v registri R0 Pomocou týchto dvoch príkazov nemôžeme zapisovať do celej pamäti ale iba do 256 bytov čo je ¼ kB.
Inštrukcie pre prenos dát MOVX A,@DPTR A externá pamäť dát Do akumulátora vloží hodnotu z externej pam. dát, ktorej adresa je uložená v 16-bitovom registri DPTR
Inštrukcie pre prenos dát MOVX @DPTR,A externá pamäť dátA Obsah akumulátora vloží do externej pam. dát, ktorej adresa je uložená v 16-bitovom registri DPTR
Inštrukcie pre prenos dát PUSH data addr Uloženie do zásobníka SP=SP+1 Príklad: PUSH 50 Najprv inkrementuje obsah ukazovateľa zásobníka SP a na takto získanú adresu v zásobníku umiestni obsah v.p.d. z adresy 50
Inštrukcie pre prenos dát POP data addr Výber zo zásobníka SP=SP-1 Príklad: POP 30 Vyberie hodnotu zo zásobníka a uloží ju do v.p.d. na adresu 30. Obsah ukazovateľa zásobníka SP je dekrementovaný
Inštrukcie pre prenos dát XCH A,Rr A ↔ Rr Príklad: A=40 R5=60 -pred XCH A,R5 A=60 R5=40 -po Vzájomne vymení hodnoty akumulátora a registra R5
Inštrukcie pre prenos dát XCH A,data addr A ↔ vnútorná pamäť dát Príklad: A=20v.p.d. na adrese 30=40-pred XCH A,30 A=40v.p.d. na adrese 30=20-po Vzájomne vymení hodnoty akumulátora a hodnoty z v.p.d. na adrese 30
Inštrukcie pre prenos dát XCH A,@Ri A ↔ vnútorná pamäť dát Príklad: XCH A,@R1 Vzájomne vymení hodnoty akumulátora a hodnoty z v.p.d. z adresy uloženej v registri R1
Inštrukcie pre prenos dát XCHD A,@Ri A 0÷3↔číslo vo vnút. pamäti dát 0÷3 Príklad: XCHD A,@R0 Vzájomne vymení prvé 4 bity v akumulátore a čísla vo v.p.d., ktorého adresa je zapísaná v registri R0