aritmetické inštrukcie
DESCRIPTION
Aritmetické inštrukcie. ADDA,Rr A A + Rr Do akumulátora sa uloží aritmetický súčet akumulátora a registra Rr. Pr íklad: A=50 R2=100 C=0 ADDA,R2 A= 150 R2=100 C= 0 < 0 , 255 > C 0 < 256 a viac > C 1. Aritmetické inštrukcie. ADDA,data addr - PowerPoint PPT PresentationTRANSCRIPT
Aritmetické inštrukcieAritmetické inštrukcie
ADDADD A,RrA,RrAAAA++RrRr
Do akumulátora sa uloží aritmetický súčet Do akumulátora sa uloží aritmetický súčet akumulátora a registra Rr.akumulátora a registra Rr.
PrPríklad:íklad:
A=50 R2=100 C=0A=50 R2=100 C=0
ADDADD A,R2 A,R2
A=A=150150 R2=100 C= R2=100 C=00
<< 0 , 255 0 , 255 >> C C 0 0
<< 256 256 a viaca viac>> C C 1 1
Aritmetické inštrukcieAritmetické inštrukcie
ADDADD A,data addrA,data addrAAAA+číslo vo v.p.d.+číslo vo v.p.d.PrPríklad: ADDíklad: ADD A,30A,30
Do akumulátora sa uloží aritmetický súčet Do akumulátora sa uloží aritmetický súčet obsahu akumulátora a hodnoty z v.p.d. z obsahu akumulátora a hodnoty z v.p.d. z
adresy 30.adresy 30.
Aritmetické inštrukcieAritmetické inštrukcie
ADDADD A,@RiA,@RiAAAA+číslo vo v.p.d.+číslo vo v.p.d.PrPríklad: ADDíklad: ADD A,@R1A,@R1
Do akumulátora sa uloží aritmetický súčet Do akumulátora sa uloží aritmetický súčet obsahu akumulátora a hodnoty z v.p.d. z obsahu akumulátora a hodnoty z v.p.d. z takej adresy akú hodnotu má register R1.takej adresy akú hodnotu má register R1.
Aritmetické inštrukcieAritmetické inštrukcie
ADDADD A,A,##datadataAAAA+čislo+čislo
PrPríklad:íklad:
A=200A=200 C=0C=0 258 258
ADDADD A,A,##5858 258258>>25255 5 -256-256
A=A=22 C=C=11 22
Do akumulátora sa uloží aritmetický súčet Do akumulátora sa uloží aritmetický súčet obsahu akumulátora a čísla. Ak je ich súčet obsahu akumulátora a čísla. Ak je ich súčet väčší ako 255 carry bit sa nastaví na 1 ako väčší ako 255 carry bit sa nastaví na 1 ako
príznak pretečenia a do akumulátora sa uloží príznak pretečenia a do akumulátora sa uloží iba hodnota o ktorú je výsledok väčší ako 1B.iba hodnota o ktorú je výsledok väčší ako 1B.
<< 0 , 255 0 , 255 >> C C 0 0
<< 256 256 a viaca viac >> C C 1 1
Aritmetické inštrukcieAritmetické inštrukcie
ADDCADDC A,RrA,RrAAAA+Rr+C+Rr+C
PrPríklad: íklad: ADDCADDC A,R3 A,R3
Do akumulátora sa uloží aritmetický súčet Do akumulátora sa uloží aritmetický súčet obsahu akumulátora, hodnoty z registra R3 a obsahu akumulátora, hodnoty z registra R3 a hodnoty carry bitu. Carry bit sa tiež nastaví hodnoty carry bitu. Carry bit sa tiež nastaví
na 1 ak dôjde k pretečeniu.na 1 ak dôjde k pretečeniu.
Aritmetické inštrukcieAritmetické inštrukcie
ADDCADDC A,data addrA,data addrAAAA+číslo vo v.p.d.+C+číslo vo v.p.d.+C
PrPríklad: íklad: ADDC ADDC A,30A,30
Do akumulátora sa uloží aritmetický súčet Do akumulátora sa uloží aritmetický súčet obsahu akumulátora, hodnoty z v.p.d. z obsahu akumulátora, hodnoty z v.p.d. z
adresy 30 a hodnoty carry bitu. Carry bit sa adresy 30 a hodnoty carry bitu. Carry bit sa tiež nastaví na 1 ak dôjde k pretečeniu.tiež nastaví na 1 ak dôjde k pretečeniu.
Aritmetické inštrukcieAritmetické inštrukcie
ADDCADDC A,@RiA,@RiAAAA+číslo z v.p.d.+C+číslo z v.p.d.+C
PrPríklad: ADDCíklad: ADDC A,@R1A,@R1
Do akumulátora sa uloží aritmetický súčet Do akumulátora sa uloží aritmetický súčet obsahu akumulátora, hodnoty z v.p.d. z obsahu akumulátora, hodnoty z v.p.d. z adresy, ktorá je uložená v registri R1 a adresy, ktorá je uložená v registri R1 a
hodnoty carry bitu. Carry bit sa tiežhodnoty carry bitu. Carry bit sa tiež
nastaví na 1 ak dôjde k pretečeniu.nastaví na 1 ak dôjde k pretečeniu.
Aritmetické inštrukcieAritmetické inštrukcie
ADDCADDC A,A,##datadataAAAA+číslo+C+číslo+C
Do akumulátora sa uloží aritmetický súčet Do akumulátora sa uloží aritmetický súčet akumulátora, čísla zadaného priamoakumulátora, čísla zadaného priamo
a carry bitu.a carry bitu.
PrPríklad:íklad:
A=150A=150 C=1C=1
ADDCADDC A,A,##5050
A=A=201201 C=C=00
aleboalebo
A=230A=230 C=1C=1 43 4366
ADDCADDC A,A,##205205 -256-256
A=A=180180 C=C=11 180180
Aritmetické inštrukcieAritmetické inštrukcie
SUBBSUBB A,RrA,RrAAAA--RrRr-C-C
PrPríklad:íklad:
A=200 R1=50 C=1A=200 R1=50 C=1
SUBBSUBB A,R1 A,R1
A=A=149149 R1=50 C= R1=50 C=00
Do akumulátora sa zapíše hodnota Do akumulátora sa zapíše hodnota akumulátora od ktorej sa odpočíta hodnota akumulátora od ktorej sa odpočíta hodnota registra R1 a carry bitu. Ak by bol výsledok registra R1 a carry bitu. Ak by bol výsledok
záporný do carry bitu sa zapíše 1 inak 0záporný do carry bitu sa zapíše 1 inak 0
a do akumulátora sa uloží hodnotaa do akumulátora sa uloží hodnota
256-(výsledok).256-(výsledok).
Aritmetické inštrukcieAritmetické inštrukcie
SUBBSUBB A,data addrA,data addrAAAA-číslo vo v.p.d.-C-číslo vo v.p.d.-C
PrPríklad: SUBBíklad: SUBB A,30A,30
Do akumulátora sa zapíše hodnota Do akumulátora sa zapíše hodnota akumulátora od ktorej sa odpočíta hodnota z akumulátora od ktorej sa odpočíta hodnota z
v.p.d. z adresy 30 a hodnota carry bitu.v.p.d. z adresy 30 a hodnota carry bitu.Ak by bol výsledok záporný do carry bitu sa Ak by bol výsledok záporný do carry bitu sa zapíše 1 inak 0 a do akumulátora sa uloží zapíše 1 inak 0 a do akumulátora sa uloží
hodnota 256-(výsledok)hodnota 256-(výsledok)..
Aritmetické inštrukcieAritmetické inštrukcie
SUBBSUBB A,@RiA,@RiAAAA-číslo vo v.p.d.-C-číslo vo v.p.d.-CPrPríklad: SUBBíklad: SUBB A,@R0A,@R0
Do akumulátora sa zapíše hodnota Do akumulátora sa zapíše hodnota akumulátora od ktorej sa odpočíta hodnota z akumulátora od ktorej sa odpočíta hodnota z
v.p.d. z adresy zapísanej v registri R0 a v.p.d. z adresy zapísanej v registri R0 a hodnota carry bitu. Ak by bol výsledok hodnota carry bitu. Ak by bol výsledok
záporný do carry bitu sa zapíše 1 inak 0 záporný do carry bitu sa zapíše 1 inak 0
a do akumulátora sa uloží hodnota a do akumulátora sa uloží hodnota
256-(výsledok) 256-(výsledok)
Aritmetické inštrukcieAritmetické inštrukcie
SUBBSUBB A,A,##datadataAAAA-číslo-C-číslo-C
PrPríklad:íklad:
A=50A=50 C=0C=0 50-60-0=-10 50-60-0=-10
SUBBSUBB A,A,##6060 256-10=246 256-10=246
A=A=246246 C=C=11
Do akumulátora sa zapíše hodnota z Do akumulátora sa zapíše hodnota z akumulátora od ktorej sa odpoakumulátora od ktorej sa odpoččíta íta ččíslo a íslo a
carry bit. carry bit. Ak by bol výsledok záporný do carry Ak by bol výsledok záporný do carry bitu sa zapíše 1 inak 0 a do akumulátora bitu sa zapíše 1 inak 0 a do akumulátora
sa uloží hodnota 256-(výsledok).sa uloží hodnota 256-(výsledok).
Aritmetické inštrukcieAritmetické inštrukcie
INCINC AAAAAA+1+1PrPríklad:íklad:
A = 68A = 68
INCINC AA
A = A = 6969
Hodnota vHodnota v akumulátor akumulátoree sa sa zvýšizvýši o 1o 1..
Aritmetické inštrukcieAritmetické inštrukcie
INCINC RrRrAARr+1Rr+1
PrPríklad:íklad:
R5 = 26R5 = 26
INCINC R5R5
R5 = R5 = 2727Hodnota vHodnota v registri R5registri R5 sa sa zvýšizvýši o 1.o 1.
Aritmetické inštrukcieAritmetické inštrukcie
INCINC data addrdata addrčíslo vo v.p.d.číslo vo v.p.d. číslo vo v.p.d.+1číslo vo v.p.d.+1
PrPríklad:íklad:
INCINC 5050
VVo v.p.d. na adreso v.p.d. na adresee 50 sa 50 sa zvýšizvýši hodnota hodnota
čísla o 1čísla o 1..
Aritmetické inštrukcieAritmetické inštrukcie
INCINC @Ri@Ričíslo vo v.p.d.číslo vo v.p.d.číslo vo v.p.d.+1číslo vo v.p.d.+1
PrPríklad:íklad:
INCINC @R1@R1
VVo v.p.d. na adreso v.p.d. na adrese, ktorá je určená hodnotou e, ktorá je určená hodnotou v v registrregistrii R1 sa R1 sa zvýši hodnota čísla o 1zvýši hodnota čísla o 1..
Aritmetické inštrukcieAritmetické inštrukcie
INCINC DPTRDPTRDPTRDPTRDPTR+1DPTR+1
PrPríklad:íklad:
INCINC DPTRDPTR
Hodnota v rHodnota v registregistrii DPTR sa DPTR sa zvýši o 1zvýši o 1..
Aritmetické inštrukcieAritmetické inštrukcie
DECDEC AAAAAA-1-1PrPríklad:íklad:
A = 68A = 68
DECDEC AA
A = A = 6767Hodnota vHodnota v akumulátor akumulátoree sa sa znížizníži o 1o 1..
Aritmetické inštrukcieAritmetické inštrukcie
DECDEC RrRrRrRrRr-1Rr-1
PrPríklad:íklad:
R5 = 26R5 = 26
DECDEC R5R5
R5 = R5 = 2525Hodnota vHodnota v registri R5registri R5 sa sa znížizníži o 1.o 1.
Aritmetické inštrukcieAritmetické inštrukcie
DECDEC data addrdata addrčíslo vo v.p.d.číslo vo v.p.d.číslo vo v.p.d.-1číslo vo v.p.d.-1
PrPríklad:íklad:
DECDEC 5050
VVo v.p.d. na adreso v.p.d. na adresee 50 sa 50 sa znížizníži hodnota hodnota čísla o 1čísla o 1..
Aritmetické inštrukcieAritmetické inštrukcie
DECDEC @Ri@Ričíslo vo v.p.d.číslo vo v.p.d.číslo vo v.p.d.-1číslo vo v.p.d.-1
PrPríklad:íklad:
DECDEC @R1@R1
VVo v.p.d. na adreso v.p.d. na adrese, ktorá je určená hodnotou e, ktorá je určená hodnotou v v registrregistrii R1 sa R1 sa zníži hodnota čísla o 1zníži hodnota čísla o 1..
Aritmetické inštrukcieAritmetické inštrukcie
MULMUL ABABA,BA,BA*BA*B
A A (A*B) 0 (A*B) 0÷÷7 bit7 bit B B (A*B) 8 (A*B) 8÷÷15 bit15 bit
C = 0 C = 0 vždyvždy AkAk B = 0B = 0 OV = 0OV = 0
B ≠ 0B ≠ 0 OV = 1OV = 1
Vykoná sa aritmetický súčin registrov A a B. Vykoná sa aritmetický súčin registrov A a B. Bity 0 až 7 sa zapíšu do akumulátora a bity 8 Bity 0 až 7 sa zapíšu do akumulátora a bity 8 až 15 sa zapíšu do registra B. Ak sa register B až 15 sa zapíšu do registra B. Ak sa register B rovná 0 tak sa bit OV(over flow) nastaví na 0 rovná 0 tak sa bit OV(over flow) nastaví na 0
inak je 1. Carry bit je vždy 0.inak je 1. Carry bit je vždy 0.
Aritmetické inštrukcieAritmetické inštrukcie
MULMUL ABABPríklad:Príklad:
A = 99HA = 99H B = 50HB = 50H 99H 99H
MULMUL ABAB *50H*50H
A = A = D0D0HH B = B = 2F2FHH 2F2F D0D0HH
C = 0 C = 0
OV = OV = 11 B B AA
Aritmetické inštrukcieAritmetické inštrukcie
DIVDIV ABABA,BA,BA/BA/B
A A (A/B) podiel (A/B) podiel B B (A/B) zvyšok (A/B) zvyšok
C = 0 C = 0 vždyvždy AkAk B = 0B = 0 OV = 1OV = 1
B ≠ 0B ≠ 0 OV = 0OV = 0
Vykoná sa celočíselný podiel registrov A a B. Vykoná sa celočíselný podiel registrov A a B. Ich podiel sa uloží do akumulátora a zvyšok sa Ich podiel sa uloží do akumulátora a zvyšok sa
uloží do registra B. Ak sa register B pred uloží do registra B. Ak sa register B pred delením rovná 0 tak sa bit OV(over flow) delením rovná 0 tak sa bit OV(over flow) nastaví na 1 inak je 0. Carry bit je vždy 0.nastaví na 1 inak je 0. Carry bit je vždy 0.
Aritmetické inštrukcieAritmetické inštrukcie
DIVDIV ABABPríklad:Príklad:
A = 100A = 100 B = 30B = 30 100100
DIVDIV ABAB /30/30
A = A = 33 B = B = 1010 33 zv. zv. 1010
C = C = 00
OV = OV = 00
Aritmetické inštrukcieAritmetické inštrukcie
DA DA AADesiatková korekciaDesiatková korekcia
Táto inštrukcia sa používa po inštrukcií ADD Táto inštrukcia sa používa po inštrukcií ADD (ADDC) ktorou sa sčítajú dve čísla(ADDC) ktorou sa sčítajú dve čísla
v kóde BCD.v kóde BCD.
Príklad: Príklad:
A = 56HA = 56H R1 = 36HR1 = 36H
ADDADD A,R1A,R1 3636
A = A = 8C8CHH R1 = 36HR1 = 36H 5656 v kóde BCD v kóde BCD
DADA AA 9292
A = A = 9292HH R1 = 36HR1 = 36H
Aritmetické inštrukcieAritmetické inštrukcie
NOPNOP
Prázdna inštrukcia – bez činnostiPrázdna inštrukcia – bez činnosti
Táto inštrukcia sa používa na vytváranie Táto inštrukcia sa používa na vytváranie časových intervalov. Jej vykonanie trvá 1 časových intervalov. Jej vykonanie trvá 1
strojový cyklus. strojový cyklus.