Académique Documents
Professionnel Documents
Culture Documents
Iii.//www.Icrrcra.uni.cdu.ar/roccsadorcs
Conceptos de
ProgramacIn: Lazos,
PIIas y SubrutInas
Sisicnas con Microroccsadorcs y Microconiroladorcs - UNT 2 02/10/2014
Temas a Tratar
Lazos.
Parics.
Fornas dc Finalizacion
Pilas.
Inlcncniacion cn cl CPU08.
Ejcnlos dc uso.
Sulruiinas.
Inlcncniacion cn cl CPU08.
Pasajc dc Paranciros.
Ejcnlos.
Sisicnas con Microroccsadorcs y Microconiroladorcs - UNT 3 02/10/2014
Lazos
Fundancnialcs cn iodo Prograna.
Incializacion.
Cucro.
Condicion dc Finalizacion.
La Condicion ucdc scr.
Nuncro dc Vcccs. DDNZ cucnia, lazo
Un cvcnio. CDEQA =ocr, rcl or cjcnlo.
Progranar siguicndo la naiuralcza dcl
rollcna.
Oiinizar crfornancc dc un rograna cs
oiinizar sus lazos.
Sisicnas con Microroccsadorcs y Microconiroladorcs - UNT 4 02/10/2014
PIIa J Stack (repaso)
Esiruciura dc daios nuy uiilizada cn
gcncral.
Ejcnlos dc ilas cn cl nundo rcal? Ejcnlos dc ilas cn cl nundo rcal?
Uso inorianic sirvc ara clorar y
salcr cono rciornar (cjcnlo. rccorridos dc
arlolcs}.
Cono sc inlcncnia cn Sw? Cono sc inlcncnia cn Sw?
Sisicnas con Microroccsadorcs y Microconiroladorcs - UNT 5 02/10/2014
ImpIementacIn en eI CPU0S
La ncnoria FAM Iacc dc ialla.
Enlca un unicro cn Iardwarc (SP cn CPU} ara scnalar e1
pr1mer 1ugor no ooupodo en 1o p11o.
Insiruccioncs (PUSH y PULL} ara ingrcsar y rciirar
clcncnios dc la ila.
Cuando ingrcsanos un nucvo clcncnio cn la ila cl valor dc
SP sc dccrcncnia cn uno.
Crccc cn cl scniido dc las dircccioncs dccrccicnics.
El unicro dc ila (SP} sc inicializa cn cl valor $00FF. Hay
una insiruccion ara rcinicializar cn $00FF, FSP.
Sc ucdc inicilizar cn oira aric cargando SP con HX+1.
TXS
Sisicnas con Microroccsadorcs y Microconiroladorcs - UNT 6 02/10/2014
ImpIementacIn en eI CPU0S
PSHA. Ingrcsa cl valor dcl acunulador (A} cn la ila.
PSHH. Ingrcsa cl valor dc la aric alia dcl ndicc (H} cn la
ila.
PSHX. Ingrcsa cl valor dc la aric laja dcl ndicc (X} cn la
ila.
Ej. PSHA, CPU cjccuia M(SP} (A}
SP (SP} 1
PULA. Fciira cl valor ioc dc la ila y lo alnaccna cn cl
acunulador (A}.
PULH. Fciira cl valor ioc dc la ila y lo alnaccna cn la
aric alia dcl ndicc (H}.
PULX. Fciira cl valor ioc dc la ila y lo alnaccna cn la
aric laja dcl ndicc (X}.
Ej PULA, CPU cjccuia SP (SP} + 1
A M(SP}
Sisicnas con Microroccsadorcs y Microconiroladorcs - UNT 7 02/10/2014
ImpIementacIones en otros CPUs
El siacl ucdc crcccr ara alajo o ara arrila.
El SP aunia a rincr lugar vaco.
No ucdc auniar a lugar ocuado si cl siacl csia vaco.
En cl CPU08 sc ucdc inicializar cl siacl or
SW cn oira aric.
Quc crczca ara arrila cn CPU08 crniic usar
ncnoria dcsdc M(0} ara oiras cosas.
Poca rolalilidad dc quc sc sucrongan anlos
usos.
Si sc sucroncn. DESASTFE!!
Vcrcnos or quc cn lo quc siguc.
Sisicnas con Microroccsadorcs y Microconiroladorcs - UNT 8 02/10/2014
OperacIones con eI Stack
Sisicnas con Microroccsadorcs y Microconiroladorcs - UNT 9 02/10/2014
EjempIo INC HX (IntercambIos)
INC X
BNE Salto
Sisicnas con Microroccsadorcs y Microconiroladorcs - UNT 10 02/10/2014
EjempIo INC HX (IntercambIos)
INC X
BNE Salto
PSHH
Sisicnas con Microroccsadorcs y Microconiroladorcs - UNT 11 02/10/2014
EjempIo INC HX (IntercambIos)
INC X
BNE Salto
PSHH
PULA
INCA
Sisicnas con Microroccsadorcs y Microconiroladorcs - UNT 12 02/10/2014
EjempIo INC HX (IntercambIos)
INC X
BNE Salto
PSHH
PULA
INCA
PSHA
Sisicnas con Microroccsadorcs y Microconiroladorcs - UNT 13 02/10/2014
EjempIo INC HX (IntercambIos)
INC X
BNE Salto
PSHH
PULA
INCA
PSHA
PULH
Salto ...
Equivale a INC HX que no existe
en el Set de instrucciones.
En la prctica se usa AIX #1
Sisicnas con Microroccsadorcs y Microconiroladorcs - UNT 14 02/10/2014
Ej. INC HX (Acc. Indexado)
INC X
BNE Salto
Sisicnas con Microroccsadorcs y Microconiroladorcs - UNT 15 02/10/2014
Ej. INC HX (Acceso Indexado)
INC X
BNE Salto
PSHH
Sisicnas con Microroccsadorcs y Microconiroladorcs - UNT 16 02/10/2014
Ej. INC HX (Acceso Indexado)
INC X
BNE Salto
PSHH
INC 1,SP
Sisicnas con Microroccsadorcs y Microconiroladorcs - UNT 17 02/10/2014
Ej. INC HX (Acceso Indexado)
INC X
BNE Salto
PSHH
INC 1,SP
PULH
Salto ...
Acccso no oriodoo cn
csia csiruciura, cro
nas raido y or ianio
raciico.
Sisicnas con Microroccsadorcs y Microconiroladorcs - UNT 18 02/10/2014
Cuanto Demora? Cuanto Ocupa?
INC X 1B 2M
BNE Salto 2B 3M
PSHH 1B 2M
PULA 1B 2M
INCA 1B 1M
PSHA 1B 2M
PULH 1B 2M
Salto ...
INC X 1B 2M
BNE Salto 2B 3M
PSHH 1B 2M
INC 1,SP 3B 5M
PULH 1B 2M
Salto ...
Esacio Toial
8 Dyics FOM
Ticno
14 Ciclos M
Esacio Toial
8 Dyics FOM
Ticno
14 Ciclos M
Ventaja reaI con
varIos accesos
Indexados.
Sisicnas con Microroccsadorcs y Microconiroladorcs - UNT 19 02/10/2014
SubrutInas
Ccncralncnic los rogranas coniicncn lloqucs
dc codigo quc sc rciicn.
En csios lloqucs dc codigo ucdcn variar
algunos dc los ocrandos (aranciros}.
Sc ucdc aIorrar ncnoria (y iicno dc
dcsarrollo} si csios lloqucs sc cscrilcn una vcz
y sc cjccuian cada vcz quc sc los rcquicrc.
Adcnas csios lloqucs sc odran uiilizar cn
oiros rogranas.
Sisicnas con Microroccsadorcs y Microconiroladorcs - UNT 20 02/10/2014
Ventajas SubrutInas
Progranacion To-Down
Sc dividc cl Prograna cn Modulos.
Cada nodulo cn sulnodulos.
Hasia llcgar a nodulos clcncnialcs.
Sc rograna dc arrila Iacia alajo
Sc rucla al rcvcs.
Tralajo cn Equio.
Fcuiilizacion (Dillioiccas dc Fuiinas}
Fcquicrc es1ondor1zoo1n g 1ronsporeno1o.
Vagancia Inicligcnic"
Sisicnas con Microroccsadorcs y Microconiroladorcs - UNT 21 02/10/2014
RequerImIentos.
Sc las convoca dc disiinios lugarcs.
Dclcn salcr dc dondc fucron llanadas
ara rciornar a la insiruccion siguicnic al
llanado.
Evidcnicncnic un sinlc salio no cs
suficicnic.
Dclc Ialcr un nccanisno ara asar y
dcvolvcr aranciros.
Sisicnas con Microroccsadorcs y Microconiroladorcs - UNT 22 02/10/2014
ImpIementacIn en CPU0S
Insiruccion dc llanada. JSF dcsiino"
Hacc un PUSH dcl valor dcl PC-1 cn Siacl y salia a
la sulruiina quc conicnza cn dcsiino".
Para csic caso PC-1 aunia a la dircccion dc la
insiruccion siguicnic (NInsi}.
Insiruccion dc Fciorno. FTS
Fcaliza un PULL" dc 16 liis y los onc cn PC.
Si iodo csia Ol, cl siguicnic fcicI cs dc NInsi.
Para quc iodo csic Ol, 1o subru11no no debe mod1]1oor e1
vo1or o1mooenodo n1 e1 SP.
Error conun cn rinciianics. rcsuliados incicrios.
Sisicnas con Microroccsadorcs y Microconiroladorcs - UNT 23 02/10/2014
LIamados a SubrutInas - CPU0S
Modos dc dircccionar cl dcsiino"
Dirccio JSF $80
PC (PC} -1
(SP} (PC
L
}
SP (SP} - 1
(SP} (PC
H
}
SP (SP} - 1
PC $0080
Indcado JSF 10,X .
PC (H.X} + 10
Sisicnas con Microroccsadorcs y Microconiroladorcs - UNT
Modos de DIreccIonamIento
Fclaiivo DSF rcl.
Dirccio - JSF dd
Eicndido - JSF II ll
IX2 JSF or16, X
IX1 JSF or8, X
IX JSF ,X
24 02/10/2014
Sisicnas con Microroccsadorcs y Microconiroladorcs - UNT 25 02/10/2014
Retornos de SubrutIna - CPU0S
FTS. Esia insiruccion cs uiilizada or la sulruiina ara
rciornar al unio dc llanada dcl rograna rincial.
FTS cl CPU cjccuia. SP (SP} + 1
(PC
H
} (SP}
SP (SP} + 1
(PC
L
} (SP}
Sisicnas con Microroccsadorcs y Microconiroladorcs - UNT 26 02/10/2014
SubrutInas AnIdadas
Esia inlcncniacion crniic a una sulruiina convocar a oira
sulruiina ara Iaccr aric dcl iralajo?
S, cl nccanisno dc Siacl lo crniic sin rollcnas.
PP ...
C1 JSR SA
R1 ...
RTS
...
...
...