Introducere in Microprocesoare_Part17

6
MOV r, M (r) + ((H) (L)) (J[ove from. rnemarj,] lltrVI r, dat (r) * (bait 7) ('orrlinutul baituiui al doilea al t lrrl r ( Moae ,immed,iate ) instrucliunii este deplasat in regis* con{inutul locatiei de memolie, a cd.rei adresi este ciati de cuvintutr inscris in reeistiur r-,et".h"-r1,-." tri"i"ra in registrur z. conlinutur Iocaliei de riemorie' nu se schimbd. ra rrr rc61:Lrul /' Lo Io I l_o__l rl i p I o i r I r I o I opcoDE I I I I I I I IDArA registru pereche Cicluri: 2 St[ri: 7 Adresare: imediatS Fanioane: - Exenoplw: MVtr A,OOH INST: X,IVI L,0A3H },TVI 8,35 5 MVI M, data ((H)(I-)) *-bait 2 Conlinutul ba'"itului de memorie a cdrei pereche 11. SE INSCRIE IN ACUMULATOR O SE INSCRtrE IN REGISTRUL L A3 IN HEX. SE INCARCA REGISTRUL B CU VALOAREA 35. (AiIove to ncemary imrnediate) al d"oilea atr instrucliunii se transferi. in locatria adresd este indicati de cuvintul din registrul PRIMA: MOV A,t{ MOV B,U MO\T M,}I CONTINUTUL LOCATIEI, CUADRESA DIN +pS_-. _E-_L, ESrE DEFiASAf^ifr"' ACUN{ULATOR. -SP_INCARCA REGISTRUL ts, DI}I MEMORIE. ACEASTA FOR},{A NU SE ADMITEJ. t MOV M,r - 1[u11r7i',- t 7 {hIaae to memorJ') confinutul registrurui r este deprasat in loca{ia de rnernorie a crrei 3"t'.]}"ffi ""d:lu j"" =:il;#J;t in'i'ii in'"gi' t' *i p.;# ;. ." n1 inu t J olllrlriot;;* , , , r)l5rs OPCODE Cicluri: 2 Stiri: Adresare: cu registru pereche Fanioane: - Exem,flu: PRIMA: MOV M,A MOV N{,B EXCLU: MOV M,M qgvINUruL ACUMULATORULu sE grggHEAZA rN MEMonrB ie ,qbnnse INDICATA DE REGISTRUL PNNNCHN U. _s-g_pEPUNE CONTTNUTUL nnc]-n rN MEMORIE. ACEASTA FORMA NU SE ADMITE !. o I ol_tl t I ol r I r I o I opcoDp irl I I IDATA I 10 imecliatd/cu registru pereche IN LOC'AT]A I}iDICATA DE ITEGISTRUL PERECFIE H SE I]dSCRIE VALOAREA 1 SE INSC,RIE IN MEMORIE LiTERA A IN ASCItr. SE INSCRIE IN MEMORIE NT]MARUL AF IN Cicluri: Stdri: Adresare: Fanioane: Exemp!,u: MVI },{,01H MVtr M,'A' },iVI OAF-}I COD HEX. 193 I o I l-fdTpltl-l ,,llol opcoDE Cicluri: Z St5"ri: 7 Adresare: cu Fanioane: - Exemplu: 192

description

23

Transcript of Introducere in Microprocesoare_Part17

MOV r, M(r) + ((H) (L))

(J[ove from. rnemarj,] lltrVI r, dat(r) * (bait 7)

('orrlinutul baituiui al doilea alt lrrl r

( Moae ,immed,iate )

instrucliunii este deplasat in regis*con{inutul locatiei de memolie, a cd.rei adresi este ciati de cuvintutrinscris in reeistiur r-,et".h"-r1,-." tri"i"ra in registrur z. conlinuturIocaliei de riemorie' nu se schimbd. ra rrr rc61:Lrul /' Lo

Io

I

l_o__l rl i p I o i r I r I o I opcoDE

I I I I I I I IDArA

registru perecheCicluri: 2St[ri: 7Adresare: imediatSFanioane: -

Exenoplw:

MVtr A,OOHINST: X,IVI L,0A3H

},TVI 8,35

5 MVI M, data((H)(I-)) *-bait 2

Conlinutul ba'"ituluide memorie a cdreipereche 11.

SE INSCRIE IN ACUMULATOR O

SE INSCRtrE IN REGISTRUL L A3 IN HEX.SE INCARCA REGISTRUL B CUVALOAREA 35.

(AiIove to ncemary imrnediate)

al d"oilea atr instrucliunii se transferi. in locatriaadresd este indicati de cuvintul din registrul

PRIMA: MOV A,t{

MOV B,U

MO\T M,}I

CONTINUTUL LOCATIEI, CUADRESA DIN+pS_-. _E-_L, ESrE DEFiASAf^ifr"'ACUN{ULATOR.

-SP_INCARCA REGISTRUL ts, DI}IMEMORIE.ACEASTA FOR},{A NU SE ADMITEJ.

t MOV M,r- 1[u11r7i',- t 7 {hIaae to memorJ')

confinutul registrurui r este deprasat in loca{ia de rnernorie a crrei3"t'.]}"ffi ""d:lu j""

=:il;#J;t in'i'ii in'"gi' t' *i p.;# ;. ." n1 inu t J

olllrlriot;;*, , , r)l5rs OPCODE

Cicluri: 2Stiri:Adresare: cu registru perecheFanioane: -

Exem,flu:

PRIMA: MOV M,A

MOV N{,B

EXCLU: MOV M,M

qgvINUruL ACUMULATORULu sEgrggHEAZA rN MEMonrB ie ,qbnnseINDICATA DE REGISTRUL PNNNCHN U._s-g_pEPUNE CONTTNUTUL nnc]-n rNMEMORIE.ACEASTA FORMA NU SE ADMITE !.

o I ol_tl t I ol r I r I o I opcoDpirlI I IDATA

I10imecliatd/cu registru pereche

IN LOC'AT]A I}iDICATA DE ITEGISTRULPERECFIE H SE I]dSCRIE VALOAREA 1

SE INSC,RIE IN MEMORIE LiTERA A INASCItr.SE INSCRIE IN MEMORIE NT]MARUL AF IN

Cicluri:Stdri:Adresare:Fanioane:

Exemp!,u:

MVI },{,01H

MVtr M,'A'

},iVI OAF-}I

COD

HEX.

193

I o I l-fdTpltl-l ,,llol opcoDECicluri: ZSt5"ri: 7Adresare: cuFanioane: -

Exemplu:

192

LXI rp, data 16 . (Load register pair(rh) *- (bait 3\, /ri\ - /h"i?'-;iBaitul al treilea al instrricfiunil""i't" Teplasai?h) I r-egistrutui perech"' ;;.' ' "'" "'vBaitul al doilea al'instructifni; estc dcplasat(r/) a registrului pereche 2y'.

I o I ol nTpl rtto-fAr rr 9p9oDEBAITL'L

imrnediate )in partea superioari

in partea inferioard.

rololr lltloltlol

Cicluri '. 4Sti.ri : 13Adresare: directXFanioane: -

OPCODEBAITULINFERIORBAITULSUPERIOR

ADRESEI

::l

inuuorouBAITL,;L

o'loor", ?

^'lllll I I I l-l supERroRCicluri: TlSt5.ri: 10Adresare: imediati.Fanioane: -

Exempl,u:

LXI SP" 1 122H

AICI: LXI D,4080

INSTR: I-XI 'B,,Az,

LXI I{,TEMPIMOV ]\,1,8

LXI H,ACOI-O

MO\T A,M

7 LDA addr

SE INITIALTZE,AZA VIRFUI. STIVEI; LA ADRESA 11zzH.

E xempltt:

LDA 3OOH ;

LDA ADR ;

LDA 4358H ;

NfOV B,A ;

LXI H,4358H;

},TOV 8,1,I ;

SE INCARCA ACUMUL. CU CONTINUTULI-OCATIEI DE ADRESA 3OOH.SE INCARCA ACUMUL. CU CONTINUTULI-OCATIEI DE ADRESA ADR.SE INCARCA ACUMUL. CU CONT. LOCATIEIDE ADRESA 435811.CONTINUTUL ACUMULATORULUI SEDEPI-ASEAZA IN B.REZULTATUL ACESTOR DOUA INSTRUCTIUNIESTE IDENTIC CUAL CELOR DOUA DE MAI SUS.

SE I}{CARCA REGISTI?UL PERECHtrD CU VALOAREA 4080.SEINCARCAREG. PER. B CU CODULCARACT. AZ IN ASCII.SE INCARCA REGISTRUL PERECI{EH CU ADRESA TEMPI, APOICONTI}{UTUL REGISTRULUI tsESTE DEPUS I\ ]\IEMORIE [-AACEASTA LOCATIE.SE INCARCA REGISTRUL H CUADRESA ACOLO. COr\TINUTUI_LOCATIEI DE MEI{ORIE CLT ADRESAACOLO SE TRANSFERA IhTACUMULATOR.

( Load accrtlnallatoy d,irect )

8 STA addr (Store accumul,ator d.'irect)( (bait 3) (bait 2) ) <- (A)

Conlinutul acumulatorului este stocat in locatia de memorie, ac5"rei adresd se specifici in baitul 2 ;i baitul 3 al instrucliunii. Con-linutul acumulatorului nu se modifici

(A) * (bait 3\ (bait Z\\Conlinutul loiatiei dJ'memorie.bartu.I 2 si 3 al instructiunii , seLontrnutul Iocafiei de memorie

194 ,

a cirnei adresi este speciricati intransleri in registrutr acurnuiator.nu se modifici.

ioioi i I o l o l 1 I ol

Cictruri : 4StSri : 13Adresare: directlFanioane: -

OPCODEBAITUL 'I

${:IIoo ot I ^rouru,BArruL ( '

SUPERIOR AI-J

195

Ex emplu:

START: STA

STA

LDA

STASTA

3048H;

LOG ;

ADR1;

ADRZ;381 ;

:g_ g LO-CHEAZA !oNr. ACUN{UL. rNII^Er{oRrE r-A ADRESi' : o+iij.' " "'f3., glccF{E AZA qoNf -ib"ur,sl,

L. rxILPUqBIE LA ADRESA ioc.^''"':g Dq.PIASEAZA coxf r x6 ii_ir locarrarDE ADRESA ADRI.I.Y_LOCATXA DE ADRESA ADRZ._E^Fliqf_ul ACE srEr r lrSiiiudfiLiir nsrEIDjNTIC CU CEL AL iinuATSAiIeronD0uA. r f \/{\n1

l0 Str{LD addr (Store ]I au,l L dtrct t )

( (ba'it 3) (ba'it z) ) * (L)( (bait 3) (bar,t z) + 1) ? (Il)Conlinntul registmlu|L este transferat in locatia de memorie ar:irei adresl se speci{ici in baitul 2 gi 3 rii insirucliunii. Con{inutulregistrului F1 este tlansferat in localia de rnemorie de adresi urn'r5.-toare. Conlinutul registrului pereche H nu se modificl.

LXI H,384MOV N{,A

9 LI{LD addr

t0l0l lLoloioilloililliitt

OPCODtrBAITUi-XNFERIOR ALBAITUL ADRESEI

(,1/,* (.(!.a;1 3 ) (bait z) )(H) * ((bait 3) (bnit z')'{con{inutur rocatiei rrr rnemorie a cirei adres' se specifici. in bai-tul 2 ;i baitul 3'ar instnucgio"ii

"rt"*a.pias_at in ,"g'*d;i-; confi-nutui locatiei de arlresd. ,irmatooie Jri" a"prurat-i* regltrul F/.Confinutul' locafiilor ae memorio-nu le moaili.n

(Load H anct L d.,iyect )

/)I t I isupnnrcRAL

toiotrlqrlllfot

Cicluri : 5Stiri : 16Adresare; directi.Fanioane: -

OPCODtrBAITULINFERiOR AL

ADRESEI

ST{LD ADR1;

SHLD 35;

Cicluri : 5Stiri : 16Adresare: ciirectiFanioane: *-

Exem,'flw:

Str S]TOCHEAZA REG. I- T-A ADR1, IAR REG. H.1.,A irDl{la1.SE STOCH'j{'AZA REG. I- I-A ADRESA 35, IARREG.. 1] I,A 36.

LHI-D ALIR1; ACESTtr LrOUA TNS'IR. IIEPLASEAZA DOIBAITi DE LA ADRESELE ADR1, ADR1+1 LA

SHLD ADR2; ADRESEI-E ADR2, ADRZ-I-1.

11 {.DAX rp(A) +- (rp)

(I-oad acafinotlatay itttiirect )

flontinut;tr loca{iei de rnemorie, a c5.rei adre-.i este speci{icatiin re.{istrul pereche rp, se transfer[ in acumu]ator. Conlinutul localieide memorie nu se modificS". Pot fi utiiizate pentru adresare cuaceastd- instructiune doar registrcle pereche B si D.

-|"hrMlopCooe

i i , BAITULI J I I ; ] ] I SUPERIOTTAL

Exem,plw:

LHLD opo ,

LHLD 4OOH ;

LHLD 5OOO ;

/ LHLD ZoooH;

MOV M,A :

;

195

SE I.\CAR.CA REG. TER. H CU CONT. DE LA*PqP-S^ELE ADR, eon+ r vv5E INTCARCA REG.,^PER. TI CU CONT. DE LAADRESELE 4OOH, 40IH.5E INCARCA REG.

^PER. H CU CONT. DE tr-AADRESELE 5OOO, 5OOI.

*gP:TP DOUA II{STRUCTIUNI REALTZE,A ZADEPL ASAREA AC tJMU'ATjjR'TiLui"i x Lo CATI AP'-E^UFMORTE cu ADRESA

-coiiiwure LAADI{ESA 2OOOH.

Cicluri :

St5"ri :

.Adresare:trianioane:

27CU registru pereche

757

Exemt'Iw:

LDAX B; SE INCARCA ACUMULATORUI- DE. SPECIFICATA IN REG. B.LDAX D; SE INCARCA aCuuuiaioRul DESPECIFICATA IN REG. D.

I-XI If

:

XCHG

ADRS1; SE INCARCA REGISTRULPERECT{E H CU AI]RESA ADRSI.

I-A ADRESA

LA ADRESA ; DUPA FOLOSIREA ADRESEIADRSI PENTRU REFERIRE LA

; }IEMORIE, IN CONTINUARE SE; VA FOLOSI ADRSz PENTRU; REFERIRE LA },{EMORIE CU

REGISTRUL H.Grwful'inslrucliunilar de transfer

MOV rtr,r2 - Trans{erul conlinutului registru}ui rZ in registrul z1( Moue register ) .

MOV r,M - fransferul unei localii de rnemorie in registrul z( X[oae frorn m,emory ).

12 STAX rp(rp) +- A

(Store acatmwlatoy ind,iyect.)

con(inutui acurnulatorului se stocheazd. in Iocatia dr memoniea c5.rei adresi este snecificati de cuvintul ai"i"gi.r"rullpl cont'inututacumulatorului nu'se modificd. poJ Ji ;;i*il' i.Kr*'"#i"."r*cu aceasti- instructiune doar registrele pereche b'gi-b. **'

ololRlplo lloi opcoDECicluri : ZSt5.ri : 7Adresare: cu registru pereche-f anloane: -Exemplu:

I]VSTR: STAX B; SE STOCHEAZA ACUUULATORUI- LAADRESA SPECIFICATA IN NCC. N.SrAx D; SE STOCHEAZA AcuMuaaroniir iaADRESA SPECIFICATA IN REG. D

13 XCHG .^(.Exchange H and. L uith D attct E)(H)*(D), (L)*,(E)

conlinutul registrelor H ;i L este schimbat cu confinututr regis-trelor 2 si ,8.(, rlr

i_1__l_r I r i o i i i o i 1 I I I opcoopa"-tt ' tSt5"ri : 4Adresare: la registruFanioane: -

Exenoplw:

EXEMPL: XCHG

MOV NI,T

MVI r,data

I\4\rI M,clata

LXI rp, data

LDA adclr

STA addr

LDAX rp

STAX rp

{-HI-D acidr

SHLD addr

XCHG

- Transferul conlinutului registrului z intr-o locafiede memorie (Moue to memory).

- Transferul imediat aI unui bait in registru r (Moueimmediate ) .

- Transferul imediat al unui bait intr-o localie demernorie (l,Ioue to ntem,ory 'itnmediate).

16 - Ti:ansferul imediat al unui dublu bait in registrulpereche rp (Load_reg'ister. pa'ir immed.iate.).

.

- incircarea acumulatorului de la adresa indicaticlin mernorie (Load accu'tnwlator d'irect).

- Stocarea con!inutului acumulatorului la adresainclicatiL clin memorie (Store accuru,wl,ator direct).

- incirrcarca acumulatorului cu continutul localieide memorie indicat de registrul pereche rl> (Loadaccwnulator 'indirect ) .

- Stocarea continutului acurnulatoruhri in locatie dernemorie indicati,r de registrul pereche rp (Storeaccunoulator indirect ).

- incircarea registrului pereche H ct conlinutullocaliei de memorie de adlesa indicatb" (Load' Ha,n,d L d,irect).

- Stocarea conlinutului registrului pereche fI inlocatia din memorie de adresl indicatS. (Store Hand L direct ).

- Schimbul confinuturilor perechiior de registre I/;i D (Exchange H and L ai.th D and E ).

; SE SCHIMBA INTRE EI-E CONT.- REG. PERECHE D SI H.

ADRS2; SE INCARCAREGISTRU' PERtrCIIED CU ADRESA ADRSz.

Instrucliunile de transfer ar putea fi numite ;i instruc{iuni de,,copiere" deoarece realizeazYa deplasarea unei copii a cuvintului implicat.Dup[ executarea instrucliunii, cu foarte pufine exceplii, acela;i cuvintse afll atit Ia surs5", cit ;i la destinafie. Acest grup de instrucliuni nuafecteaz6 {anioanele de condilii, numai instruc}iunile care se realizeazl.

198

LXI D

199

F.tio.itl."lre{i4 uAl inscriu l*..u"tt"^ de condifii (cu exceplia insrruc-giunii PoP psw 64, instrucgiunit"^pop ,J pt'sFi";JiiiPJon.ia"r"t.tot ca operatii de trarsfer)- tnrttucliunit. .i*.tr"*i.r"p*ir..i.urint" ae8 bifi;i pentru 16 biri;int rep;;;;;iate sistematizit in figura 5.27.

5,4.2. Grupul instnucEiunilon aritmetice

Acest grup de instruc$iuni realizeazd.,operalii aritmetice cu cuvin_tele .din registie sau din "i"*ori". i-ete

"rt6 ,pJ.iri""i" i""r" instruc-giuuiie acestui srup,,af-ect."ri in,rio-"i"]" d; ;;;dril;:';;;;;* precizi_rilor din sccliunei 5.3. vv*."!-rL' uu'rulr

Toate operaliile de sc'dcre sint rearizai-e prin adunare in compre-mentul fati. de z. In acest ."r, pon"i"" r"i c'v j ili"ii.^a o"o'i*pro-rrtde la cY c5"tre bitul cer mai r;;t;iii;* al baitului, iar cy : 0 indiciiipsa imprumrrtului' Algoritmii d; ua"tr"." gi scidere, atit a 'umerer.orcu semn cit;i a celor fari semn, sint expugi t; $1.3.'

14 ADD r (Ad'd, rcoict.v t(A)*(A)*(y)conlinutul registrutrui r este adunat cu confinutu-r acrrmrrratorurui,rezurtatul se oh,line i.t

"comolat"i" c""ii",i;;l *d;ffiui r nu semodifici.

Cicluri : 1

St5"ri : 4Adresare: la registruFanioane : Z,S,p",Cy,AC

Exemplw:

ADD B; CONTINUTUL LUIADD II; CONTINUTUL LUI15 ADD M

(A) * (A) + ((rry (r))

ADUNA LA ACUMULATOR.ADUNA LA ACUMTTLATOR.

(Add memory )

BSEHSE

confinutul- localiei de -memorie, a cd"rei adresd este specificatdde cuvintut din iegistrur pereche'H, ";;;";d.";;i" """1i#,iriri ".r-mulatorului ; rezultatu-t se obfine 6t-in-".o_ulator.

iilil-ffi opcoDECicluri : ZSt5.ri : -I

Adresare: cu_registru pereche-t anioane : Z,S,p,Cy,AC

bl

Pttil:i

I L-lJ]-vJ- JNlEMORIE

200

Fig. 2. 2T. Instrucfiuni de transfer : a -pentru cuvinte de 8 bif i ;0 - pentru cuvinte de 16 bifi

201

Exemplu:

LXI H,1I22H; SE INSCRIE o ADRESA IN REGISTRULPERECHE H.

ADD M ; CONTINUTUL DE LA ADRES A 1122H SE ADUNALA ACUMUL.

ADI 3ADD NT

STA REZULT

END

Instrucliunea ADD M

AcumulatorI-ocafia din memorie :Rezultat in acumulator :

Fanioanele de conditie

; SE ADUNA LA ACUI\,IULATOR 3.; SE ADUNA LA ACUMULATOR 5.; SE STOCHEAZA VALOAREA 22 IN

LOCATIA CU ADRESA 4OOO,FI.

din acest program realizeazd":

11H : 000100015H : 00000101

16H:000m1m:221rc

au valorile:

16 ADI data

lil r l-irllCicluri : 2Stiri : jAdresare: imediatiFanioane: Z,S,P,Cy,AC

Exemplu:

ADI IO ; SE ADUNAADI OF3H ; SE ADUNAADI 01010011B; SE ADUNAADI '2, ; SE ADUNA

LA ACUM.

(A) - (A) + (bait z)

conlinutul celui de al d,oilea bait al instructiunii se aduni, la conti_nutul acumulatorului; rezultatul se obline i" "."-=Jufoil

(Add immed,,iate )

OPCODE

DATA

CarrySignZeroParitv

tr] ADC r

0000 Aux Carry: I

(Add register with carry )

. - ln urma ruli.rii prcgramului urmb.tor in locafia d.e memorie cu adresasimbolic[ REZTILT: sJva afla rezultatuI ZZD.

(A)*(A) +(r)tQY)confinutul_registrului z se adunl cu conlinutul fanionului detransport cY ;i cu continutul acumulatorului; rezultatul se obtinein acumulator. continutul -regist-rului r nu se modifici (in afaride cazul cind z este acumulatorul).

10 LA ACUMULATOR.F3H LA ACUMULATOR.

BAITUL O1O1OO11 LA ACUMULATOR.CODUL IN ASCII AL LITEREI Z

SE ASIGNE.AZA ETICHETA ACOLO"SE ASIGNEAZA ETICHETA RtrZULT"SE ASIGNEAZA DATA.SE I,fEMOREAZA 5 LA ADRtsSA30001/.SE PRESCRIE ADRESA STARTEGALA CU IOOOH.SE INCARCA ACUI{ULATORULCU 10.SE INCARCA REGISTRUL E CU 4-SE INCARCA REGISTRUL PERECHECU ADRESA 3OOOI1.SE ADUNA LA ACUMULATOR 4.

I 1 I ql ot ol 1 lsl s I sl opconnCiciuri : ISt5"ri : 4Adresare: Ia registruFanioane : Z,S,P,CY,AC.

AceastS" instrucliune, ;i toate instructiunile de adunare urml-toare, lacare particind. ;i bitul de transport pot fi utilizate peritru adunareacuvtntelor fir5" semn mai-lungi de un bit (16, 24,32 bili etc.). Dacb. iaadunarea a doi octefi inferiori apare un iransport ta'Cy:l, atuncila adunarea octetilor urmS"tori se adund. ;i bitul^de transport, adici Cy(with carry).

Exempl,u:

ADC B; SE ADUNA LA ACUMULATOR REG. B SI CYADC A; LA VALOAREA DUBLA A ACUMULATORULUI SE

ADUNA CY.

ACOI_O E9u 3000HREZULT EOU <OOOITDATA EoU snACOLO: DE DATA

oRG 1000H

START: NIVI A,1OD

},TYI E,4D ;LXI H,ACOLO;

202

ADDE ;

203