introducere in microprocesoare_part22

7
(sP) : 47831r, (ot :.1]f:, >) : AsH,. (rl . 4784H >) : r5H. A_ eastr instructiune pcrrniic .,'"a..*-inifiari de rcintoalcere 3gB4H ;tff il'lf,eiiru$:i:;i;;,;"i;:{:#, iu, uai..n *iiiir;e rie pds- Exew,t'Ilt.: IN 38; SE GITESTE poRTuL DE INTRARE I.{UMARI]L 38. , Presupunind ci portul intrare nr.3.s confinc in registrul siu "aloarea R4FI dupi executarea jnstrucrirrnii Il s'a'in-'".,rilotuto, ." 'a gdsi r,'aloarea B+H. Aceasti. instructiune poate ri i"r*llJ numai in cazul.cind po'turile sint adresate. prin'modaiitate ^ t 1o' iiilitri sau I/o cu adresare ;i nu printr-o adresar" i;- ;",ti;f mem.riei /E 5 ? r\ 66 SFIIL (sP) -_ (H)(r,) Conlinutid registr-elor Fl si dc strvi" Sp. Contini_rtur.ilc t_1l @ (J{oae FIL to Sp) L :1:i trans{erate_in registrut indicator reglstrelor H gi L nu se modifici.. i-l I 1 I l-L _{I_qI_Ll cpcoDll Cicluri: q+.:-;. Adresare: Fanioane: registru 68 OUT *ddr. port (data) <- Se.iucarch.porlui, a al tnstruct [un11, cu (Ou,tpwt) c5"rui adresS. este inciicatir in baitul al cioiiea continutul acumulatoruiui. 1 . s la Exemplw: SPHL ; SE INCARCA \rrRFUL STTVEI CU (H)(L). Daci (Fi): BTFI Fi (L):96H dupi. executarca instrucfiunii Spl-{L ::'#i .J r l,Tn rJr, i"" * Ff"."J s s if T;, r t o ", *i *- l o u i. j i i i o. i ; u,-,i ri _ LXI H,4753H j *p_r{q4RCA REGisr*uL cuADriES.a sPHL : liLT IHHS'ft ,*orr.r srr'Ei . . "Qa ;i instruc,iiy::1 iXI "Sp, .<lata1u. instrucliunea SpHL poate i:IH:'i?,, i:ff ;i:l iijl :1": :;" : f : jl #;*r;*1, fff t"#l:  inigiaiizrre cu "i;." .-i"i"",""".11'.1,",a iir_ rc5iisrrul ncicclrcH" 6? IN addr. port {A) +_ (tiata) Qn'pttt) Se incarc' in acumuiator bcitul py., q"_ magistr.ala de datc de :iiTrLnilt ,i,ft'"t na..'l "'t""."i1i",iti in S"i a" ,r toiiea bait OPCCDE ADRESA PORTULUI Cicluri: 3 St5,ri: 10 Adresare: directS. Fanioane: - Exemplu,: our 75 ; sE trNSCRItr Itd potirul DE iESiRE lduMAriul- ?$ CONTII{UTUL ACUIIIULATCRUI_UI Fresupunind-.cL _qg'nfinutul acuraulato.ului. este 47H, clup5 execu- tarea instruc'giunij 9ur 7:. in r"egistrul" portului T5 se va'ailu^ ,raloarea 47H. r'a fel si instruc,fiunea de citire a -portului, poate fi "pli;;i; ioar cird p9^rtg{19. sint ad'resat" u"r"i iae di memoii"'."o "o adresare combinatS. (S 5.2.1). 69 DI (D i,s abl, e i,nter r u pt) Executarea. instruc{iunii de dezactivare (interzicere) are ca efect t'g:*.' "^u in stare ldgic n r"1 o- i i"r, *i- ixTij' ;'; 1.1";;J."'s?r,rr,ri, asllei incit microprocesorul nrr va'iua in consiclerare i-,i.i o cerer€ cre rntrerupere care ar surveni ulterior executi.rii. acestei instruc-  iuni. I rl 1 | rl rl 0l ol i1 r 1 opcore Stiri: 4 Farnioane: - iirm Cicluri: 3 Stiri: 10 Adresare: directl Fanioane: * OPCODtr ADRESA PORTULUi 452 253

Upload: mesuzana-1

Post on 07-Jan-2016

226 views

Category:

Documents


0 download

DESCRIPTION

16

TRANSCRIPT

7/17/2019 Introducere in Microprocesoare_Part22

http://slidepdf.com/reader/full/introducere-in-microprocesoarepart22 1/6

(sP)

:

47831r,

(ot

:.1]f:,

>)

:

AsH,.

(rl

.

4784H

>)

:

r5H.

A_

eastr

instructiune

pcrrniic

.,'"a..*-inifiari

de

rcintoalcere

3gB4H

;tff

il'lf,eiiru$:i:;i;;,;"i;:{:#,

iu,

uai..n

*iiiir;e

rie

pds-

Exew,t'Ilt.:

IN

38;

SE

GITESTE

poRTuL

DE

INTRARE

I.{UMARI]L

38.

,

Presupunind

ci

portul

de

intrare

nr.3.s

confinc

in registrul

siu

"aloarea

R4FI

dupi

executarea

jnstrucrirrnii

Il

s'a'in-'".,rilotuto,

."

'a

gdsi

r,'aloarea

B+H.

Aceasti.

instructiune

poate

ri

i"r*llJ

numai

in

cazul.cind

po'turile

sint

adresate. prin'modaiitate

^

t

1o'

iiilitri

sau

I/o

cu

adresare

combinati

;i

nu printr-o

adresar"

i;- ;",ti;f

mem.riei

/E 5

? r\

66

SFIIL

(sP)

-_

(H)(r,)

Conlinutid

registr-elor

Fl

si

dc

strvi"

Sp.

Contini_rtur.ilc

t_1l @

(J{oae

FIL

to

Sp)

L

:1:i

trans{erate_in

registrut

indicator

reglstrelor

H

gi

L

nu

se

modifici..

i-l

I

1

I

l-L _{I_qI_Ll

cpcoDll

Cicluri:

q+.:-;.

Adresare:

Fanioane:

registru

68

OUT

*ddr.

port

(data)

<-

(A)

Se.iucarch.porlui,

a

al tnstruct

[un11,

cu

(Ou,tpwt)

c5"rui

adresS.

este

inciicatir

in

baitul

al

cioiiea

continutul

acumulatoruiui.

1

.

s

la

Exemplw:

SPHL

;

SE

INCARCA

\rrRFUL

STTVEI

CU

(H)(L).

Daci

(Fi):

BTFI Fi

(L):96H

dupi.

executarca

instrucfiunii

Spl-{L

::'#i

.J

r

l,Tn

;i,

rJr,

i""

*

Ff"."J

s

s

if

T;,

r t o

",

*i *-

l o

u

i.

j

i

i

i

o.

i

;

u,-,i

ri

_

LXI

H,4753H

j

*p_r{q4RCA

REGisr*uL

PERECHE

cuADriES.a

sPHL

:

liLT

IHHS'ft

,*orr.r

srr'Ei

.

.

"Qa

;i

instruc,iiy::1

iXI

"Sp,

.<lata1u.

instrucliunea

SpHL

poate

i:IH:'i?,,

i:ff

;i:l

iijl

:1":

:;"

:

f

:

jl

#;*r;*1,

fff

t"#l:

 

inigiaiizrre

cu

"i;."

.-i"i"",""".11'.1,",a

iir_

rc5iisrrul

ncicclrcH"

6?

IN

addr.

port

{A)

+_

(tiata)

Qn'pttt)

Se

incarc'

in

acumuiator

bcitul

py.,

q"_

magistr.ala

de

datc

de

:iiTrLnilt

,i,ft'"t

na..'l

"'t""."i1i",iti

in

S"i

a"

,r

toiiea

bait

OPCCDE

ADRESA

PORTULUI

Cicluri:

3

St5,ri:

10

Adresare:

directS.

Fanioane:

-

Exemplu,:

our

75

;

sE trNSCRItr

Itd

potirul

DE iESiRE

lduMAriul-

?$

CONTII{UTUL

ACUIIIULATCRUI_UI

Fresupunind-.cL

_qg'nfinutul

acuraulato.ului.

este

47H,

clup5

execu-

tarea instruc'giunij

9ur

7:.

in

r"egistrul"

portului

T5

se

va'ailu^

,raloarea

47H. r'a

fel

ca

si instruc,fiunea

de

citire

a

-portului,

poate

fi "pli;;i;

ioar

cird

p9^rtg{19.

sint

ad'resat"

u"r"i iae

di

memoii"'."o

"o

adresare

combinatS.

(S

5.2.1).

69

DI

(D

i,s abl,

e i,nter r

u

pt)

Executarea.

instruc{iunii

de

dezactivare (interzicere)

are

ca

efect

t'g:*.'

"^u

in stare

ldgic

n

r"1

o-

i i"r, *i-

ixTij'

;';

1.1";;J."'s?r,rr,ri,

asllei

incit

microprocesorul

nrr

va'iua

in

consiclerare

i-,i.i

o cerer€

cre

rntrerupere

care

ar surveni

ulterior

executi.rii.

acestei

instruc-

 iuni.

I

rl

1

|

rl

rl

0l

ol

i1

r

1

opcore

Stiri:

4

Farnioane:

-

iirm

Cicluri:

3

Stiri:

10

Adresare:

directl

Fanioane: *

OPCODtr

ADRESA

PORTULUi

452

253

7/17/2019 Introducere in Microprocesoare_Part22

http://slidepdf.com/reader/full/introducere-in-microprocesoarepart22 2/6

Exemplu:

DI

;

DIJPA

ACEASTA

I}iSTRUCTIUNE

PROGRAI,IUL

NU

MAT

;

POATE

FI

INTRERUPT

PRINTR-O

CERERE

DE

;

INTRERUPERE.

Dezactivarea

intreruperii este

necesari. cind

microprocesorul

este

impiicat

intr-o

bucli

de

ieniporizare,

un

calcul

care

nu

poate

fi

intre-

rupt,

sau

este

necesar

s5. se

ignore

perifericele.

De

exemplu,

nu

poate

fi

intrerupt

segmentul

din

programul

principal

prin

."i"

."

schimbi.

argumentele

(parametrii)

cu

o

subrutind.

Dicd-

intreruperca

ar inter-

veni

in

iimpul

accstui

schimb

s-a.r

putea

casubrutina

sx

utilizeze

o

parte

drn-parametri

c'.r

valorile

actualizate,

iar

rpsful

parametrilor

cu

vaiorile

vechi,

ceea

ce

ar duce

probabil

la

rezultate

iircorecte.

in

afar5.

de

instrucfiunea

DI',

efectul

de dezactivare

al intrerupe-

rilor,

INTE

:

0,

r"ezult5.

automat

in

urrna iniliarizSrii

microprocesoroloi

.cu

semnalul

RESET

si in

urma

acceptarn

uner cererl

prrn

fgenerarea

semnaiului

TNTA

:

0.

,

Cindg

intrerupe-re

este

a-cceptati

de

ci.tre

microprocesor,

INfT

-

0,

automat intreruperile

sint

dezactivate

IhITE

:

0.

^Aceastf

clezactivare

este

necesarS,

iu

primrl.

rind,

deo-arece

p.erifericu-l

care

a cerut intreruperea

isi

intrerupe

propia

lui rutini.

de

seriire.

in

al

doilea

rind.,

nu este

de

{orjt

ga'n

'periferic,sS.

intre.rup5

subrutina

de

servire

a

aliui

periferii.

Existi.;i

c.azul

cind

un

per-ifeiic

poate

intrerupe

subrulina

db servire.

a..altui

pe5ifgric,.

dar

a-tunci

se imbune

o

funclionare

corectd"

prin sta-

bilirea

prioritllii

perifericelor

la

^intrerupere.

Prin

urmare,

dac5

dup5. acestc

doui

semnalc

RESET

si INTA

:

O,

sau

dup5.

o

instructiune

-DI

este

necesar5

functionut""

rirt.*ului cu

intreruperi,

bistabilul

INTE

trebuie

adus in

,i"r""

logicd. l,

adicl

funcfionare.a

intreruperilor

trebuie

autorizati.

ceea

ce

se"poate

realiza

cu

instrucfiunea

urmltoare,

EI.

70

EI

(Ettttblc

ittlc;.ritpt)

Instrucfiunea.

cie autorizare

a

intreruperilor

are ca

efect

acceptarea

eventualelor intreruperi

ce

intervin

dupi

executarea

instruiliunii

care

urmeazS.

lui EI.

.E

xenrplot,:

EI

;

INTRERUPERILE

CAIIts

INTERVIT-{

I\

PROGRAA{

DUPA

EXECUTAREA

II{STRUCTIUNII

DCR

If

VOR FI

D

CR

UI

ACCJ]PTATE.

.

Acceptarea

intreruperilor

are

loc

insJ"

nu imediat

dupi

executarea

instrucfiunii

EI

ci

abia

dup5.

terminarea

cxecutirii instructiunii

urmd.-

toare

(plasati

in program-imediat

dupn EI).

f,inind

.ooi

d"

aceasti

restrictie,

a

autorizirii

intreruperilorf

instruciiunea

EI

este

uitiina

instrucfiune

dintr-o

subrutini

firainte

de P.ET.

:

;

INSTRUCTIUNILE

SUBTTUTINEI

itl

;

AUTORIZAREA

INTRERUPERILOI{.

IIET

;

REINTOARCERE

IN

PROGRAULIL

APELA}iT,

,

Prin

aceast5.

pia:are

a ins_trucliunii

EI

se asigurl

ca

o

intrerupere

s5"

nu

poatl fi activat[.

pinil

dupi

ce

adresa

de

re'enire

lin

programul

ipciant

a

{ost

scoasa

din

stivi

$i

introdusi

i:r

rrumird"torirt

de

i,1.".".

Intrcruperile

pot.[i

dezactivate

dc

multe

ori in

cadrul

subprogramelor

qle

servire

a

pcriicricelor,

dar

sint

autorizalc

ia

termina-rea acestor

subprograme

ca

in

subrutina

urmS"toare:

.PRIN

URMATORL.L

PROGRATN

TIICROPROCESORUL

ASTEAPTA

PII{A

CIIVD

ESTE

II{TRERUPT

(PRIIV

ACTTVAREA

SETIINALULUr

rr{T

:7

)

DE

/0

ORi

DE

CATRE

PERIFERICUL

CARE

RASPUI{DE

LA COT,'FII?X,TAREA

trI'{TRERUPERII

.NTA

:

O

C(T R"ST'

3.

LA

ADRESA

78 I

5E

.AFLA

1t/.SrRr_rcTrur{EA

DE

SAL.t-

L.4

SUt3(RU-fInA)

DE

SERVIRE

A PE{<IFETIICULU

I.

jtlrlririilojiirl

Cicluri:

Stiri:

Fanitrane:

I

4

ORG

OH

JMP

START

ORG

18H

JlrP

sLrB

ORG

4OOH

IVIVI

A,1O

STA

CONTOR

LXI

SP,\iIRF

EI

PRIMA

INISIRUCIIUNE

LA

OH.

PRIMA

IhISTfIUCTIUNE

LA

CONECTAREA

TEI{SIUi\II.

RST O11B

PR.ODUCE

SALT LA

ADRESA 18H.

ACEASTA

ESTE

PRI\{A

INSTRUCTIUI{E

CU

CARE INCEPE

SERVIREA

PERIFERiCULUI

CARE

GENEREAZA

RST3

.IT{TRERUPEREA

ESTE

AUTO},{AT

DEZACTiVATA

iNTE:

O

ETICI]ETA

START

LAADRESA4OOH.

I

NITIALIZE

AZ t\

CONTOIiU

L.

STOCHEAZA

CONTORUL

INITIALIZEAZA

VIRFUL

STIVEI.

AUTOITiZAREA

INTREITUPERILOR

254

OPCODE

START:

255

7/17/2019 Introducere in Microprocesoare_Part22

http://slidepdf.com/reader/full/introducere-in-microprocesoarepart22 3/6

ASTEPT:

LDA

ORA

JNZ

DI

:

CO}iTOR

A

ASTEPT

;

I}.tr

ACEASTA

BUCLA

SE

ASTEAPTA

;PINA

CINDSEREALIZEAZ

lOCERER{

DE

INTRERUPERE.

SE

DEZACTIVEAZA

INTRERUPERILtr

FtrNTRU RESTUL

PROGRAMULUI.

ADITESELE

DINTRE

18I{

SI

2OH

}JU

SII'IT

SUFICItrNTE

PE},]TRU

NUI\IARUI,

DE

IbISTRUCTIUNI

AL

E

SUB(RUTiNEI)

DE

SERVIRE

A

PERIFERICULUI.

SAI-VEAZA

PSW.

SAL\I-EAZA

REGISTI?UL

PERECHE

B.

SAI-VEAZA

RE

GISTRUL

Ptr}itrCI{E

D.

SALVtrAZA

REGISTRUL

PERECHE

I].

SE

DECREMENTEAZA

CONTORUT

CU

UNU

PROGRAMUL

DE

SERVIRE

AL

PERIFERtrCULUI.

REFACE

REGISTRUL

PERECHE

REFACE

RtrGISTRUL

PER]]CHE

REFACE

REGISTRUL

PERECHE

REFACE

PSW.

AUTORIZAREA

INTRERUPERILOR.

REVENIRE

IN

PROGRAMUL

APELA}1T.

(Halt)

instrucliuni

are

ca

efect oprirea

executdrii

teptare pinh.

cind

apare

o

intrerupere.

Dupd.

reintoarcerea

din subru-

tina

de

servile

a

intreruperii,

prin

care s-a

forfat

iesirea

din

starea

I{ALT, se

reia

execri.tarea

proppamului'de

1a

instrucfiunea imediat

urmX,toare

instrucliunii

HLT.

DaciL

intreruperile

nu

sint

autorizate,

prin instrucliunea EI,

inainte

de

a

surr.-eni

HLT,

microprocesorul 8080

n'n

va

mai putea

iesi

din stalea

Halt

decit

printr-o

reiniqializare

hard-

r\''are

a

sistem,.rlLri

(semna1u1

RESEI')

c'-r

pornire

de

la

adresa

0000H.

La

ccnectaiea

tensiunii adresa,

de

la

care

incepe microprocesorui

e-'rplorarea

prograinului

esie nede{iri.itiL.

Piin aplicarea semnalului

RtrSET

se

forleaziL

adresa 0000Fi

:

in

3cneial,

acest sennal

de

inifia-

lizare

se

forrneazi autornat

(cu ajutoi:-il

r-rnui circuit

cie

integrare

la

intrarea

unui tligg.'r

Schmit, ligur-a

5.{.

lr)

dupi

un

anumit

interval

de timp.

O

seci-en{ir

obignuiti

d'.:

instr-ucfiuni 1a

iniliaiizare ar

puiea

fi:

ADRESA

SUE:

PUSH

PSW

PUSH

B

PUSH

D

PUSH

FI

LDA

CONTOIT

"DCR

A

STA

CONTOR

:

{

I

J

I

$r

d

i

I

H.

D.

B.

H

D

B

PSW

0{i00H

EI

OOOiH HLT

Si-] .\UTORTZEAZ.\ I\TRFRUPFR{LE

i\TERZISE

DE RESET.

rN

ACEASTA

S]'ARE

(i{.\r-T)

SE

ASTEAPTA

IsDEF'I\IT.

SE PO.\TIJ

IESI D{.\

ST.{.REA

HALT

I)OAR

PiRIN"IR-O

CER]IRE

IIE

trl,iT'iiERUPE|{E

API-ICATA

}TA\UAL SAL ALTOIIAT.

OP

POP

POP

POP

EI

RET

Uneori,

la

adrescle

0000H

gi

0001H

este

inscrisi

o

altd.

adresS.

{,vector")

cai{l

este

inceputul

ulr,ri

prograin

de

initiaiizare

(bootstrap)

rezident in.t{OlI.

-\cest

i;rogi'arn,

relatii,

scur't.

incarcl

cli:

pe

r,rn

suport

{disc,

banriS-)

pio-<rain'r1

principal

in

mcrnoria

RA}I.

72 NOp

(J:o

o

f

erati.oit)

VI

X{LT

Executarea

acestei

programului.

I

ol

tl

r

I

r

lol

1l

1

loi

opcoDE

Cicluri:

I

St[ri:

7

Fanioane:

-

Exernplu:

:

I{LT

;

SE

OPRESTE

EXECIi-TAREA

PITOGRAMUTUI

(STAREA

;

;

HALT).

Reluarea

execut5"rii

programului,

dupd.

ce

s-a intilnit

instruciiunea

HLT, poate

fi f5.cut5"

doar

de citre

o cer6re

cie intrerupere

INT:I

sau

o

reini{ia-lizare

a

micrcprocesorultii

comandat

cu

senriralutr

de

initiali-

zare

RESET. Instrucliunea

III-T

poate

fi

privitd. ca

o

opera{ie

de

ag-

256

Executarea

instrr,rci.iunii \OP nli

are nici

un

efect

asupra

regis-

tlelor

micrcrprocesoruJ.ui,

cu

e:rceplia nurniirltorului

de

adrese

PC,

care este

incremeniat

in

veclerr-a

aclresirrji

mernoriei

de

prograrne

pentru

u.rmirtoarea

instrucfirinr'.

lo

olo o

l_q_

o1o

o i

opcoDE

Cicluri:

1

St5.ri:

-1

Fanioane:

-

E:ientpl'u.:

:

xop

lroP

iioP

"\ioP

CU ,\CESIE

PAT{IU

I\SI-RUCTIL'){I

\OP \t

Str

OPEREAZA

\Illtc

I-\

rDItOi,i)..\U

i

i

DOIR

cE

COlisl,-U'{

3X{-_1-0.

SiARi.

At,Ei-.\:.I 11'IlCl'

SE

OR-|I\E

CU

INSTRL'|CX-IL,\F:A

li0\'

-\,,\.

?,:ti

7/17/2019 Introducere in Microprocesoare_Part22

http://slidepdf.com/reader/full/introducere-in-microprocesoarepart22 4/6

Instrucfiune.a

Noj

poate

avea

dgu'.

ut'iziri:

1

-

consumarea

numitor

stiri

in

rearizaiea

"n"*ito.

intirzieri

;

2

-pS.strarea

alru_

itor

spalii

in

progra-;i"

'-,r;j;;initi'ut.

ince,

pentrurca

ulterior

se

e

rntroduci

in

aceite

spalii

iniiru.liurif"-

,".;#;J_".

*

Grupwr

instrwcriwn,or

cre

htcrw

cct,

stiua,

de

intrarefie;ire;i

d,e

contror,

PUSH

rp

-

inscrierea

in

virful

stivei

'a ..orrli.rototoi

registrului

pusH

psw

_:U:iil:{i,;:fi"

stivei

a coniinururui

cu'intuiui

pop

rp

-

{dl}:?:1.'l1i'xiliJn{,",:n*i.,ffi,trrt?[d_;

pop

psw

-

fi::Tl:"{

ffi?;rul.srir.er

a

corrtinururrri

cuvinrului

.\fHL

_

^Si,:ffi:,,,^lJJ;;iiT;,il,iflm;i%*:,#,'tri'?:

l

celor

doud

rocati;

ai,,

,.iriri';ii;::

(i*rt,ong,

,tark

spHL

-'i:,{,}t':i ::#""Ji:li'

conrinuiur

regisrrurui

pereche

H

tN

addr.

pori-

Vf:it'ri'",t"|Ji",

dintr_un

porr

de inrr.are

(rnfti).

U'f

addr.

u"l

;,i::,._i"r""'i"ii',I"

p"rr

de.

i.sire

1o'rtprt1.

Di

_

r\urorlzarea jntreruneriior

(l:.nahic

iniiriu,pt|.,

HLT

_

Dezacti'area

intrerirperilor.,lpl;qu;,,1"*irrrpt1.

ii6i

:

*lji'"'1T3."1X:",#.,?ji;;;",'1y-i,i'''|f"c

5.4.6.

programarea

cu

macroinstruc{iuni

Analizind

un

observa

.,,..*riurfr,"fJln...::

t:1,:0":.

dc

asambtare,

uncori,

se pot

#il:1,:o1f

":il*::*,:li'1" :":1:^#lif

,Xti:"1

jl,.i#:"#I,#SiTT;

ti""'a"ili#t',";l'i,",1,"1X:o;:,f:J$L.,:i;'i"i;i,f

"ti;r#:;T,r"",fi

seudo-insrructiunii

altul-,iia"iiatr

i'fOi,;r,rrr;runri',.silflorur

pentru

uP

8080

pot"di

aceastd

r..iiit-i-^

i"'""

r.i.u,,o";t"

-"..oinstructiunire

ntr--un

program

in"lirn

baj

J"'.tl*

ui"rl.

progr"*

area

cu

macroinstruc_

'il,',r',7,fii',]n,','."'

faze

distinc

l"

i

i'1''i;'i',-i;k';;;;;'i",)lro,,o,ro

n,o-

,"t^3tr:yro*ru^*

/'.

urmitoarea

secveni-a

ae

instrucfiuni

este

ne-

bitul

2:

ori

de cite

ori

in

portul

a"."a."ra-irri,*"r.h""ra

ANI

111r

110-IB

OUT

5

srruri?)

ESTE

MAScAT,

RAMIN

NEMODIFICATI.

BITUL

2

DIN PORTUL

5

VALOAREA ZERO.

RESTUL

BITILOR

ESTE

INSCRIS

CU

Definirea.

AceastS"

secven 5. de

mascare

poate

fi

substituiti:

a.

-

ctr

o

pseudoinstrucfiune

MACRO, cu

numele

MASK,

de

parametrii

ADPORT,

MASCA

care

sint adresa portului

intrare/ie;ire,

r'espectiv

cuvintul

de

firascare

;

b

-

cu

succesiunea instructiunilor

care

f.ormeazl,

corpul

macroinstrucliunii;_

c

-

cu

pseudoinstrucfiunea

ENDM

."t".p".Ul.a

sfir;itul

secvenlei

de

instrucfiuni.

,

Ilefer,irea.

in

cadrul

programului,

in

timbaj

de

asamblare,

ori

cle

cite

ori

este nevoie

de

secventa anterioard.

pentru

mascare se poate

face

o re{erire

la

aceastS. MACRO instrucliuire

in

felul

urm1tor:^

Eticheta

Cod

Operand

MASK

MACRO

ADPORT,

MASCA;

INP

ADPORT

ANI

MASCA

OUT

ADPRT

ENDM

;

MASK

2,tt1t

1101B

NIASK

23,1111 i

i01B

Comentariu

DEFINIREA

MACROINSTRUCTIUNII

X,IACRO

DENUMITA

MASK,

,

CU

PARAMETRII

ADPORT

SI MASCA

SITUATI

IN

CIMPUL

OPERAND

SEPARATI

PR]N VIRGULA.

ACESTE

INSTRUCTIUNI

FORMEAZA

CORPUL

MACROINSTRUCTIUNII

MACI{O

PSELTDOINSTRI

ICTI{

INEA ENDM

INDICA

SFIRSITUL

SUCCESIUNII

CAIiE

}-ORMEAZA

O

MACROINSTRUCTIUNE.

ALTE

INSTRUCTIUNI

ALE

PROGRAMULUI

SE FACE

PRIMA

REFERIRE

LA

MACROINSTRUCTIUNEA

MASK

IN

CARE

SE

VOR

FACE SUBSTITUIREA

PARAMETRILOR

CU

VALORII-E

ADPORT:z,

MASCA:1111

11OIB.

ALTE INSTRUCTIUNI

ALE

PROGRAMULUI.

A DOUA

REFERIRE LA

NIACROINSTRUCTIUNEA

MACRO

CU

VALORILE 23,1].11

11018 PENTRI,

PARAIIIETRI

I. ALTE I NSTRUCTIUNI

ALE

PROGRAMULUI.

IN5

258

;

CONTINUTUL

REGISTRULUI

DE

LA

PORTUL

;

5

ESrE

TRANSMTs

N

Atir\fCii?on

Dezaoltarea.

Unei

referir-i

in

programul

surs[

ii

corespunde, in

urma

asambl5rii,

in

prograrnul

obiect

o

dezvoltare

ca

cea

din

corpul

macroinstrucfiunii

de definifie,

evident

cu

valorile parametrilor indicate

255

7/17/2019 Introducere in Microprocesoare_Part22

http://slidepdf.com/reader/full/introducere-in-microprocesoarepart22 5/6

;a

referirea

'cspectir-i..-De

excr'plu,.pertru

cele

doud.

referiri

anterioare

.rramblorul

r

a

pt.ocluce

dezr.oltdrile

urmi-toarc:

,

IN

z

.c-rTpsTE

poRTUj_

DE

ADRESA

2.

1ry

1111

11018

;

IfASCHEAZA

BrTUL

1.

IIJT

z

;

rrscnrn

FonTLir

DE'ADRESA

2.

;

CITESTE PORTUL

DE

ADRESA

23.

;

I{ASCHEAZA

BITtiL

i.

;

I\SCRIE

pORTt-L

DE

ADRES-{

23

LOC.\I-

TR.{)iSF

T"R-\NSF

LHLD

-\Ilit

1

NIO\r

-\,lI

LHLDI, ,\DTi:

Ifo\: B,],I

LHI-D

.\DR3

MO\r

(t,tI

END}I

;

ETICHETA

TR-\NSF \-.{ ,{\-E,1,

O

;

SENINIFICATIE

DO.\R.

IN

;

1\IACROINSTRUCTIL'NE-\

I\C-\R.

;

(H

-

L)

<-

(ADRI).

;

(A)<-

((H)(L)).

;

(H

-

L) <- (-\DR2).

;

(B)<-

((H)(L)).

;

(H

-

L)

<--

{^\DR3).

;

(C)* ((I{)(L)).

;

f.ERMINAREA NIACROINSTRUCTIUNII

;

I\C-\Ii.

I\STRL]Cf'IT'NE

A PIIOGIT.\MT'LT:

I,

PRIMA

REFI'RIRE

LA

I,I.\CROINSTRUCTIT'\E.\

INC.{R-

(.\DR

.t-

2)

+

(ADR).

(H-L)

+-\DRf1.

(ADR

+

1)

<_

(ADR

;

1).

(H

-L)

<-,

-\DR.

(ADR)<-

(ADR

+

2).

INSTRUCTIUNI

ALE

PROGRAIIT'I-I]I

IN

23

Ai{I

i11111018

our

23

Iiticheta

Cod

Operancl

LOC,\L

sir

de

etichete;

ciqgirl

operand

al

pscudoinstrucliunii

MACRO

cuprinde

o listi

de

aramelrii

care

respecti

regulilc

ce

'qerinrre

^;^;;ri#i;iir

(varorilor)

sinrbolice.

Ciud

sc

iece

o referli"-ilA?'nb

ordinea

in

succesiunea

valorilor

ciin

cimpul

operand

trebuie

rt ;;;;r;;"d[

cu

ordinea

in

succesiune

a

aramerrilor

din cimpul

ope.iand

de'ra

defiui'"

;

;;;;;;;;iarea

acestei

,

o'di'i

va

duce

ra

'arori

gti;it"

in

a"ri.ri".-.'ri;.t'i""51i.'t"rir.

a

unei

acroinstructiuni

sint

,m"ai.

pulin9

-il"to.i

a.iti

""tli

'ae

p"ram"t.ii

din'lista

de

definitie

atu'ci

.i-tro*i

u.ig,reuJ'i,Jol.*i"rr.o

pentru

alorile

lipsi,.

iar

in

.n""i-.iriJ^..'lriroo,-

mai

multe

'alori

ultimite

.

care

sint

i'plus

r.or.fi

negiijate.

uoei"

etichete

"r.

*.tr*r]iunilor

di'

orpul

macroinstrucliunii

ioi-

fi

s"rse-de

erori,

dac'

exist'

mai

multe

eferiri

la

l{ACRo

in

cah^rl

piogi"-"r"i,

sau

daci

aceste

etichete

sint

folosite

gi

in

alta

par.te.

i,,

i...'t.'."ro.i

"sarnbloiut

,r"

"urigna

cile

 

adresi

or-i

c'l'e

cite.ori

intilne;te

aceste

etiche[.

-i;-.;-"or

produce

crori

dacL

eticrreta

'u

este

fotosite

r'

J"ru

macroinstructiunii

sau

daci

ceasta

este

numai

.o

singrirS.

datS

referitt

r";;;;;;.

d;;r"

a fi

p*_

sibili

asignarea

rnai

mulTor

";il

^.-l.i"qi

"dJ#;;-;;;il

va

ciprta

 

semnificalie

localir,

doar

in

cadrur

a."'''oitariir";;;ri;;,

;;in

introdu_

;

till',_b3:fi

ni'ea

ma

croi

trsr

ru c

t

i u' i

i

J

upi

-uAa

do';'

pr"*,raoinrtru.-

RePrirtz.

in

prog.arnul

urmitor

cu

prima

iefer-ire

la

macroin-struc-

tiunea

INCAT{ se

preglte;te

per-itlr-r

trei-cu'inte,

afla-ie

in

locatiiie

cle

adrese

succesir-e

ADR, ADR+1,

ADR-|2,

inr-ersarea

ordinii

de

sto-

care,

iar cu

a

doira

referire

se pregS"te;te

adunarea continuturiior

ciin

lccatiile

dc

adr:ese

3EOH

rci

BYTi',,

apoi

comparaica

acestei

sume crr

conlinutul

loca iei

de

atiresS.

IrERIF:

Jl\iz

INC.\R

AD}?

}XOV

II,A

DCX H

MCV M,B

DCX H

lIlF l-

,l

.\l-)P L

;

;

;

;

T::

il:

r

INCAR

3EOH,

BAIT,

I'ER]F

ADD B

CbIZ

START

A

DOUA

REFERIRE

L.\

il{ACiTOINSTRUCTITTNE.\

I}iCAR

(A)

<-

(A)

-i- (B).

(A)

-(c)

:?

DACA

(A)

+

(C)

SAr_T

LA

ADRESA

START.

Dezaoltarea.

ln urrna

substituirii

macroinstructiunii

de

cltre

asam-

bior

programul

de mai

sus

va

fi:

Cod

Opeiand

EXETIPLCL

2.

Succesiunea

de

instrucfiuni

care

incarcd.

confi-

'riturile

dir

trei

locafii"

d9

memorie

de

_adres

eoni,

ebnz,

ADR3,

:-:ryrli"

i'

registre-ie

-4 B,

c

poate

fi-aetidte

intr-o

r{ACRoinstruc-

truue

cu

numele

,INCAR

in

felul

urrnitor:

Definirea

lric'+n{''

rr-A'cRo

{DR

1,-{DR2,-{DR.I

;

T,IACRoINSTRUCTT'NEA

INCAR

cu

i

|

;

FAi{-{METRII

ADR1,,qU-nZ,

,{nnt.

zou

Comentariu

ETICHETELE

DIN

CI\IPUL

OPERAND

AU

O

SEI{I,IIFICATIE

DOAR

LOCALA

IN

DEZVOLTARILtr

DI}I

PROGRAUUL

C.\RE

UR},TEAZA.

Cod

Operand

JNZ

ACOLO

LHLD

ADR

NIOV

A,M

LHLD

ADR+1

NIOV

B,M

LHLD

ADR+2

N,IOV

C,NI

MOV

},i,A

DCX

H

MOV

M,B

DCX

H

MOV

U,C

LHLD

MOV

LHLD

MOV

LHLD

MOV

ADD

CMP

CNZ

3EOH

A,M

BAIT

B,M

VERIF'

C,M

B

C

START

261

7/17/2019 Introducere in Microprocesoare_Part22

http://slidepdf.com/reader/full/introducere-in-microprocesoarepart22 6/6

EXEIUIPLUL

3

Ad,resarea

ind,irectd.

La

adresarea

indirecti

operandul

instrucfiunii

indicS.

o-adresd.,

ca

Ia

adresarea

directi",-Jar

in

ro.i1i-.,i

".""rta

adresi

nu se

afl5.

operandul

ci"utat,

ci

adresa-

""ei

"tt"

ir]..1ii

r"

."re

se

afli

operandul.

Succesiunea

de

instrucliuni

care

rearizeazl

transferur

intre

rin

registru

RI

si

o

locafie_de

memorie

a ci.rei

"ar"re-i"-"rri

in

locatia

de memorie

cu eticheta

ADIND

(adres.are

ilaili;j-.;"#;"';";rtt[i

in

urmS.toarele

doui.

macroinstru'ctiu"i.-

pot

adresa

dou6localii

distanlate cu cel

mult

256

de adrese

(o

paginl),

pe

.cin^d

aceea;i

.adresare

cu

registru

pereche

necesitd.

doua

rbgiitie

p6-

reche

incS.rcate fie

de

la

alte

registre,

iie

de

la

patru

locatii

de memoiie.

o

situalie

tipici

de utilizare

a

adresirii

indexate

o

bonstituie

ciu-

tarea

intr-un

tabel.

ln

acest

caz,

registrul

index

va

confine

adresa

de

inceput

a

tabelului-

din

memorie,

iai

deplasamentul

va

ionline

adresa

de

intrare

relativS"

la

inceputul tabelului.

De

exemplu, pentru

a

ajunge

Ia

adresa

67

relativS.

la

adresa

de

inceput

a

tabeluiui

(iare

s-a iniarcit

in

index)

se

adund

depiasamentul

67.

'

La

microprocesorul

8080

adresarea

indexati

se

poate

realiza

cu o

macroinstrucliune

care

.genereazS"

succesiunea

de instrucfiuni

pentru

transferul

dintre un registru

RI si

o

localie

de memorie

a'ci.rei ldresi.

se

obline

prin

adunarea

deplasamentului,

RP, la

adresa

debazd,,

ADRB,

conlinutl

in registrul

(index),

H-L,

CADIND

MACRO

RI,ADIND

LHLD

ADIND

MOV

RI,M

;-L\IDM

,

IADIND

}XACRO

RI,ADiND;

LHLD

ADIND

LIOV

,\,{,RI

ENDM

MACROINSTRUCTIUNEA

PEI{TRU

CITIRE

FOLOSIND

ADRESAREi

INDIRECTA.

SE

INCARCA

REGISTRUL

PERECHE

I1

DE

LA

ADRESA

AD]ND.

CONTINUTI,IL

LOCATIEI

ADRtrSa

INDICATA

IN

REGISTRUL

PERECHE

DEPLASAT

IN

RI.

SFIRSITUL

DE

H

ESTE

CAINDX

MACRO

RI,IIP,ADRB

LXI

H,ADRB

MACROINSTRUCTIUNEA

PENTRU

CITIRE FOLOSIND

ADRESAREA

INDEXATA.

REGISTRUL

H-L

FOLOSIT

CA

INDEX

SE

INCARCA

CU

ADRESA

DE

ETICHETA

ADRB.

CALCULUL

ADRESEI

INDEXATE.

(Rr):((H)(L)).

SFIRSITUL

1VIACROINSTRUCTIUNII

CAINDX.

NTACROINSTRUCTIUNEA

PENTRU

INSCRIERE

FOLOSIND

ADRESAREA

INDEXATA.

REGISTRUL

H-L

FOLOSIT

CA

INDEX SE

INCARCA

CU

ADRESA DE ETICHETA

ADRB.

CALCULUL

ADRESEI

INDEXATE.

((H)(L))

:

(Rr)

SFIRSITUL

MACROINSTRUCTIUNII

IAINDX.

MACROINSTRUCTIUNII

CADIND.

N,[ACROINSTRUCTIUNEA

PENTRU

INSCRIERE

FOLOSII{D

ADRESAREA

INDIRECTA.

SE

INCARCA

REGISTRUL

PERECHE

H

DE

LA

ADRESA

ADIND.

CONTINUTUL

LUI

RI

ESTE

INSCRIS

IN

LOCATIA

DE

ADRESA

INDICATA

DE REGISTRUL

PER.H.

SFIRSITUL

MACROINSTRUCTIUNII

IADIND.

DAD

MOV

ENDM

IAINDX

MACRO

RP

RI,M

Ri,RP,ADRB

EXEMPLUL

4

Adresarea

indexatd.

Microprocesoarere

care

au

aceasti

facilitate

de adresare

indexati,

posedi

printre

r"girtr"r""

ili"r;;';i

"in

registru

T:::11 i",liri,

registrw

ind_ex'cu

lungim"ea

de

r6'biii.-.q[r" "

efectir.i

penrru.o

rnstructrune

cu

adresare

indexatd

se

formeazi prin

adunarea

la

continutul

registrului

index

a nnui

,uuinr

qs

;;i

;tlt

a",,"-i,

depra_

sare.

Dacl.

in

registrul

index

exist5

o valoare

fixl'cll"Ji.i^,

"aresb.,

de

la

aceasta

in

bontinuare,

pot

rezurta,

in ordinea

numerelor

naturale

inc1'

256

de

adrese

prin

adunat"u

d"pt"sumentuiui,

00H

+

FFH.

Adresarea

indexatr

se

aseami.nd-

iu

adresa."u

.u"r"giriro

pereche,

9ar

spre

de-osebire

de.

aceadta

din

urml,

o

i;.;;;ti";;

;;?;.tte

numai

2

baili

-

codul

operaliei

qi

deplasarea.

i"

aoox

il;t;;.ii;;ii,rd.""t"

,"

262

LXI

RP

DAD'

RP

MOV

M,RI

ENDh{

Adresarea

yelatiad

este

de^stul de apropiati

de

adresarea

indexatii,

totu;i

existi

unele

diferenle. In

primul

rind

deplasamentul

este

adunat

tot

la index insl

egal

cu

valoarea curentS.

a numiiritorului

de adrese,

PC.

ln

ai

doilea

rind,

deplasamentul

este

considerat

in

complement

fa i.

de

doi,

deci

rezult|

o

adresS.

inainte

(in

sensul

de

crestere

a

adleselor)

263