aritmetické inštrukcie

27
Aritmetické Aritmetické inštrukcie inštrukcie ADD ADD A,Rr A,Rr A A A A + + Rr Rr 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. Pr Pr íklad: íklad: A=50 R2=100 C=0 A=50 R2=100 C=0 ADD ADD A,R2 A,R2 A= A= 150 150 R2=100 C= R2=100 C= 0 0 < < 0 , 255 0 , 255 > > C C 0 0 < < 256 256 a viac a viac > > C C 1 1

Upload: keola

Post on 21-Jan-2016

27 views

Category:

Documents


0 download

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 Presentation

TRANSCRIPT

Page 1: Aritmetické inštrukcie

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

Page 2: Aritmetické inštrukcie

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.

Page 3: Aritmetické inštrukcie

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.

Page 4: Aritmetické inštrukcie

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

Page 5: Aritmetické inštrukcie

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.

Page 6: Aritmetické inštrukcie

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.

Page 7: Aritmetické inštrukcie

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.

Page 8: Aritmetické inštrukcie

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

Page 9: Aritmetické inštrukcie

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).

Page 10: Aritmetické inštrukcie

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)..

Page 11: Aritmetické inštrukcie

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)

Page 12: Aritmetické inštrukcie

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).

Page 13: Aritmetické inštrukcie

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..

Page 14: Aritmetické inštrukcie

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.

Page 15: Aritmetické inštrukcie

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..

Page 16: Aritmetické inštrukcie

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..

Page 17: Aritmetické inštrukcie

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..

Page 18: Aritmetické inštrukcie

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..

Page 19: Aritmetické inštrukcie

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.

Page 20: Aritmetické inštrukcie

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..

Page 21: Aritmetické inštrukcie

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..

Page 22: Aritmetické inštrukcie

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.

Page 23: Aritmetické inštrukcie

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

Page 24: Aritmetické inštrukcie

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.

Page 25: Aritmetické inštrukcie

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

Page 26: Aritmetické inštrukcie

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

Page 27: Aritmetické inštrukcie

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.