Introducere in Microprocesoare_Part17
-
Upload
mesuzana-1 -
Category
Documents
-
view
226 -
download
1
description
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