Вы находитесь на странице: 1из 32

El cdigo objeto

5.- EL CDIGO OBJETO


Se ha elegido como cdigo objeto el llamado cdigo P. Es un cdigo bastante
orientado a la compilacin del lenguaje Pascal, pero que se ha aplicado de manera
ptima a los objetivos de este compilador.
El compilador traduce el programa fuente escrito en el lenguaje LC99 a este
cdigo objeto basado en mnemotcnicos ! etiquetas, que corresponde al ensamblador de
una m"quina de pila virtual denominada m"quina P.
El cdigo ser" despus interpretado por un intrprete de cdigo P que simular"
las caracter#sticas de la m"quina P.
$"s que las caracter#sticas del cdigo objeto en s# para el beneficio del
compilador en cuanto a la optimi%acin o la did"ctica, ha sido el sistema de gestin de
memoria de la m"quina P el que supone un atractivo para utili%ar esta alternativa. La
estructura de la m"quina, estudiada a fondo en el siguiente apartado, posee algunas de
las caracter#sticas a las que tiende la did"ctica de este pro!ecto& otras se han adaptado de
manera efica% ! no mu! costosa.
'ntes de abordar directamente cmo reali%a el compilador la generacin del
cdigo objeto, se e(plicar" en detalle el funcionamiento de la m"quina P, as# como los
fundamentos para la correcta escritura de programas en el cdigo P. 'mbas tareas han
formado parte del desarrollo de este pro!ecto, !a que no se contaba inicialmente con
una especificacin formal del cdigo o de la m"quina. ' partir del documento
e(plicativo del compilador P) *ver referencia bibliogr"fica +',-9./0 se ha intentado
elaborar un documento de referencia para esta m"quina ! su cdigo.
123
El cdigo objeto
5.1.- La mquina P.
La m"quina de Cdigo4P posee una estructura similar a la de un computador
convencional !a que consiste en un procesador ! una memoria.
El procesador tiene su propio repertorio de instrucciones definido. Para la
ejecucin de las instrucciones ! la gestin de la memoria cuenta con cinco registros.
4 PC5 Contador de programa *program counter0. 6ndica la posicin dentro del
programa fuente en cdigo P, de la instruccin actualmente en ejecucin.
4 SP5 Puntero de pila *stac7 pointer0. 'punta a la cima de la pila local.
4 $P5 Puntero de marco de pila *mar7 stac7 pointer0. 'punta a la base del marco
de pila * "rea de datos0 situado en la cima de la pila de marcos de pila.
4 8P5 Puntero nuevo *ne9 pointer0. Es el marcador del l#mite actual de la parte
de memoria din"mica *heap0.
4 EP5 Puntero de e(tremo de pila *e(treme stac7 pointer0. 'punta al l#mite de la
pila local.
La organi%acin de la memoria se puede apreciar en los siguientes diagramas5
El "rea de constantes es generada por el ensamblador ! accedida por el cdigo.
Como se muestra en el diagrama, la memoria din"mica crece hacia las
posiciones bajas de la memoria. El inicio del espacio libre es apuntado por 8P.
12:
pila
memoria dinmica (heap)
constantes
SP
NP
0
El cdigo objeto
El "rea de la pila contiene una estructura interna m"s compleja, que se ve en el
siguiente diagrama, ! se usa para almacenar las "reas de datos correspondientes a las
activaciones, en forma de marcos de pila *stac7 frame0. El primer marco es una
e(cepcin que corresponde al bloque principal del programa.
En la siguiente figura se muestra el formato interno de cada marco de pila.
;ambin se muestra el uso de los punteros $P ! EP.
$arco de pila
<alor de
la
funcin
Enlace
est"tico
Enlace
din"mico
EP
anterior
=ir. de
retorno
Par"me4
tros
<ariables
locales Pila local
$ar7 stac7
$P SP EP
El "rea de datos *stac7 frame0 consta de un primer espacio reservado para los
par"metros impl#citos5
14 <alor de la funcin5 Posicin donde se almacenar" el valor de retorno en el
caso de que la activacin corresponda a la de una funcin.
>4 Enlace est"tico5 'punta a la base del marco de pila que corresponde a la
subrutina que engloba a la actual.
24 Enlace din"mico5 'punta a la base del marco de pila de la subrutina desde
donde se produjo la llamada de la actual.
)4 EP anterior5 <alor del EP antes de la activacin.
129
heap
marco de pila
marco de pila del
programa principal
SP
0
marco de pila
espacio libre
El cdigo objeto
?4 =ireccin de retorno5 <alor que adquirir" el PC tras finali%ar la ejecucin de
la subrutina actual.
El registro $P apunta a la base del marco de la cima de la pila, ! se usa para
liberar el espacio tras la finali%acin de la activacin de la cima.
EP apunta al e(tremo de la pila local, lo cual significa que ser" el valor m"(imo
que puede adquirir el SP. Su funcin es la de proteger el "rea de la pila local de la
memoria din"mica, comprobando que no se alcancen los punteros EP ! 8P. El valor de
EP ser" conocido en tiempo de compilacin, calculando el efecto sobre la pila de las
instrucciones generadas.
La pila local se usa e(clusivamente por las instrucciones para guardar valores
temporales. Por ejemplo, @sbi@ e(trae los dos valores de la cima de la pila, los resta, !
almacena el resultado en la pila. El SP se decrementar" para reflejar el nuevo estado.
El "rea de par"metros contiene los par"metros formales, que son transferidos en
la llamada a la subrutina. En stas posiciones se almacenar" el valor o la direccin de
los par"metros reales, dependiendo del modo de acceso definido para los mismos.
La parte de variables locales almacena todas las variables declaradas en la
subrutina. Como el lenguaje LC99 permite estructura de bloques, ! la forma de
implementarlo es utili%ando una subpila interna al "rea de datos, el tamaAo reservado
para las variables locales deber" ser el ma!or posible segBn la estructura de anidamiento
de los bloques. En este espacio se almacenar" tambin las variables temporales
utili%adas en las instrucciones @for@.
El particular primer marco de pila, que corresponde al bloque principal del
programa, tiene la siguiente estructura5
... ..) ? C 3 : 9.. ..EP
$ar7 stac7 entrada salida Prd prr Par"m. <ar.
Locales
Pila
local
Las cuatro posiciones siguientes a las de los par"metros impl#citos *?4:0 se
reservan para las posiciones de entrada ! salida de datos de la consola ! ficheros,
respectivamente.
La primera posicin en la que se puede alojar una variable local ser" la 9.
;odas las posiciones del "rea de datos del procedimiento principal ser"n fijas
durante la ejecucin del programa. Por ello pueden ser accedidas de forma global,
Bnicamente especificando la direccin absoluta deseada.
1).
El cdigo objeto
El enlace est"tico se utili%a como un puntero para acceder a variables en bloques
e(ternos. El enlace din"mico es el valor previo de $P, de manera que el marco de pila
pueda eliminarse cuando termine la ejecucin del procedimiento llamado.
El siguiente ejemplo muestra un procedimiento anidado llamado recursivamente.
El diagrama de la pila de marcos muestra los enlaces est"ticos ! din"micos en la pila en
el momento en que el programa para la ejecucin, por la instruccin @brea7point@.
Program
<ar j5 integer endvar
Procedure P
<ar i5 integer endvar
Procedure D
6f iE. then
i 5F i 4 1& j 5F j G 1&
D
Else
brea7point
Endif
Endproc D
i 5F >&
D
Endproc P
j 5F .&
P
Endprogram
1)1
sl dl sl dl sl dl sl dl
programa principal
proc. p
proc. q
1 llamada
proc. q
2 llamada
proc. q
3 llamada
El cdigo objeto
=e esta forma, en un momento dado de la ejecucin, es posible acceder a las
variables locales, globales ! de otras "reas de datos contenidas en el "mbito actual.
?.1.1.4 Ejemplo
Consideremos el siguiente procedimiento ! el correspondiente Cdigo4P5
Program
procedure addlocal
var i:integer endvar
i:=i+1
endproc addlocal
addlocal
endprogram
l 2 Comien%o de addlocal
ent 1 l ) Se sitBa SP segBn el tamaAo de las variables locales
ent > l ? Se calcula el valor del EP segBn la pila local
lodi . ? Se carga en la pila la posicin ?H a partir del $P *i0
ldci l Se carga en la pila el nBmero 1.
adi Se e(traen el 1 e i, ! se inserta en la pila iG1
stri . ? El valor de la cima *iG10 es almacenado en ? *i0
retp Ietorno de addlocal
l )F C En este punto se sabe el tamaAo de las variables locales
l ?F 3 ! el tamaAo de la pila local
l C Comien%o del programa principal
ent 1 l 3 Se sitBa SP
ent > l : C"lculo de EP
mst . Crea un nuevo mar7 stac7, para addlocal
cup . l 2 Llamada al procedimento addlocal
retp Jin del programa principal
l 3F 9 ;amaAo de las variables globales
l :F ? ;amaAo de la pila local
q *6ndicador de comien%o del programa0
mst . Se crea el "rea de datos del programa principal
cup . l C Se entra en el bloque del programa principal
stp Para la interpretacin
q *6ndicador de fin de programa0
1)>
El cdigo objeto
Kn par"metro de una subrutina se transfiere desde el bloque llamador cargando
los valores o las direcciones de los par"metros en la pila, segBn el modo de acceso.
Como esto se debe hacer tras la instruccin @mst@, que genera el "rea de par"metros
impl#citos *mar7 stac70 de la nueva subrutina, los valores en realidad no se estar"n
situando en la pila, sino que se situar"n directamente en el "rea de par"metros.
<eremos algunos ejemplos en las siguientes secciones, dedicadas al cdigo P.
El valor de retorno de una funcin ser" almacenado por sta en la posicin de su
"rea de datos destinada a tal fin, que ser" la primera. 'l retornar de una funcin, el SP
no se sitBa justamente donde estaba antes de la llamada, sino una posicin
incrementada, con lo que en la cima de la pila quedar" almacenado el valor de retorno.
1)2
El cdigo objeto
5.2.- Repertorio e in!tru""ione!.
El repertorio de instrucciones de la m"quina P consta de C. instrucciones, ! >2
procedimientos est"ndar.
En este apartado se describe en detalle un subconjunto del repertorio, que es el
utili%ado para generar el cdigo del prototipo. Para apro(imarse al repertorio completo
cabr" remitirse a la bibliograf#a propuesta en el documento del P) *ver referencias
bibliogr"ficas0.
Las instrucciones constan de un mnemotcnico de tres letras, al que puede seguir
un distintivo de tipo, ! cero, uno *D0 dos par"metros *P ! D0. <eamos algunos
ejemplos5
adi 4 solamente el mnemotcnico
equi 4 el mnemotcnico m"s un distintivo del tipo
ldci 1 4 con un par"metro *D0
lodc . 9 4 con dos par"metros *P ! D0
lda . 9 4 con dos par"metros *P ! D0 ! sin el distintivo
Las siguientes tablas muestras grupos de instrucciones clasificadas por tipos. Si
se permite el uso de un distintivo de tipo, se aAadir" una L;L tras el mnemotcnico.
Esto querr" decir que la ; se puede sustituir por alguna de estas letras, significando5
a direccin
b lgico
c car"cter
i entero
Los campos de las tablas se refieren a5
- 6nstruccin5 mnemotcnico, ! distintivo segBn el caso. Jormato de la
instruccin.
- P5 Significado del par"metro P *primero de los dos0
- D5 Significado del par"metro D *segundo si ha! dos, o primero si ha! uno0
- 'ccin5 operacin reali%ada por la instruccin.
- Pila antes5 Iequerimiento de estado de la pila antes de la ejecucin. Se
representa por un nBmero de letras que indica cuantos elementos debe haber
en la cima ! de qu tipo. Kna L(L simboli%a cualquier tipo.
- Pila despus5 Estado en el que queda la pila tras la instruccin. Kna letra
significa que se ha depositado en la cima un elemento de ese tipo.
1))
El cdigo objeto
-PEI'C6-8ES 'I6;$M;6C'S
68S;IKCC6N8 P D 'CC6N8 P6L'
'8;ES
P6L'
=ESPKMS
=ESCI6PC6N8
adi 4 4 SP5FSP41
store+SP/5Fstore+SP/Gstore+SPG1/
*i,i0 *i0 Suma dos enteros de la cima de la
pila ! almacena el resultado en
ella
sbi 4 4 SP5FSP41
store+SP/5Fstore+SP/4store+SPG1/
*i,i0 *i0 Iesta
mpi 4 4 SP5FSP41
store+SP/5Fstore+SP/Ostore+SPG1/
*i,i0 *i0 $ultiplicacin
dvi 4 4 SP5FSP41
store+SP/5Fstore+SP/Pstore+SPG1/
*i,i0 *i0 =ivisin
ngi 4 4 store+SP/5F4store+SP/ *i0 *i0 6nvierte el signo del entero de la
cima de la pila
inc; q
*;Fi0
4 nQ de unidades de
incremento
store+SP/5Fstore+SP/GD *i0 *i0 6ncrementa en D unidades el
elemento de la cima de la pila
-PEI'C6-8ES LNR6C'S
68S;IKCC6N8 P D 'CC6N8 P6L'
'8;ES
P6L'
=ESPKMS
=ESCI6PC6N8
not 4 4 store+SP/5Fnot store+SP/ *b0 *b0 8egacin lgica del
elemento de la cima
and 4 4 SP5FSP41
store+SP/5Fstore+SP/ and store+SPG1/
*b,b0 *b0 Conjuncin
ior 4 4 SP5FSP41
store+SP/5Fstore+SP/ or store+SPG1/
*b,b0 *b0 =is!uncin
1)?
El cdigo objeto
-PEI'C6-8ES IEL'C6-8'LES
68S;IKCC6N8 P D 'CC6N8 P6L'
'8;ES
P6L'
=ESPKMS
=ESCI6PC6N8
equ; nQ ; longitud
si es
ristra
SP5FSP41
store+SP/5Fstore+SP/Fstore+SPG1/
*(,(0 *(0 Si el elemento de debajo la cima es igual al
de la cima, pone true en la cima. sino,
pone false
geq; nQ ; longitud
si ristra
SP5FSP41
store+SP/5Fstore+SP/EFstore+SPG1/
*(,(0 *(0 Compara si es ma!or o igual
grt; nQ ; longitud
si ristra
SP5FSP41
store+SP/5Fstore+SP/Estore+SPG1/
*(,(0 *(0 Compara si es ma!or
leq; nQ ; longitud
si ristra
SP5FSP41
store+SP/5Fstore+SP/SFstore+SPG1/
*(,(0 *(0 Compara si es menor o igual
les; nQ ; longitud
si ristra
SP5FSP41
store+SP/5Fstore+SP/Sstore+SPG1/
*(,(0 *(0 Compara si es menor
neq; nQ ; longitud
si ristra
SP5FSP41
store+SP/5Fstore+SP/SEstore+SPG1/
*(,(0 *(0 Compara si es distinto
1)C
El cdigo objeto
C'IR' T =6IECC6-8'$6E8;-
68S;IKC
C6N8
P D 'CC6N8 P6L'
'8;ES
P6L'
=ESPKMS
=ESCI6PC6N8
ldo ; q 4 despla%amiento en el
primer marco de pila
SP5FSPG1&
store+SP]5Fstore+q]
4 *;0 Cargar contenido de la direccin del
nivel base
ldc ; q 4 nqF.&
cqFord*ch0&
en el resto
qFposicin en la
tabla de constantes.
SP5FSPG1&
pF. store+SP]5Fma(str&
pF1 store+SP]5F q&
pF2 store+SP]5F qF1&
pFC store+SP]5F chr*q0&
4 *;0 Cargar constante
lao q 4 direccin SP5FSPG1&
store+SP]5Fq
4 *a0 Carga direccin del nivel base
ind ; 4 nQ de unidades de
almacenamiento
ad5F store+SP]Gq&
store+SP]5Fstore+ad]
*a0 *;0 UBsqueda inde(ada. Se carga la pos q
a partir de la direccin de la cima
lod ; p q profundidad de
anidamientoO
despla%amiento ad5Fbase*p,$P0Gq&
SP5FSPG1&
store+SP]5Fstore+ad]
4 *;0 Carga el contenido de la direccin de
nivel P
lda p q profundidad de
anidamientoO
despla%amiento SP5FSPG1&
store+SP]5Fbase *p,$P0Gq
4 *a0 Carga la direccin con nivel P
lca q 4 direccin de la
constante
SP5FSPG1&
store+SP]5Fq
4 *a0 Carga direccin de una constante
OnQ de enlaces est"ticos a recorrer hasta llegar al "rea de datos deseada *. indica el "rea actual0.
1)3
El cdigo objeto
'L$'CE8'$6E8;-
68S;IKCC6N8 P D 'CC6N8 P6L'
'8;ES
P6L'
=ESPKMS
=ESCI6PC6N8
sro ; q 4 posicin de memoria
donde almacenar
store+q]5Fstore+SP]&
SP5FSP41
*(0 4 'lmacena en la
direccin q del nivel
base el elemento de
la cima.
str ; p q profundidad de
anidamientoO
despla%amiento
dentro del marco
store+base*p,$P0Gq]5F store+SP]&
SP5FSP41&
*(0 4 'lmacena en el nivel
P.
sto ; 4 4 store+store+SP41]]5Fstore+SP]&
SP5FSP4>
*a,(0 4 'lmacenamiento
indirecto
OnQ de enlaces est"ticos a recorrer hasta llegar al "rea de datos deseada *. indica el "rea actual0.
S'L;-S
68S;IKCC6N8 P D 'CC6N8 P6L'
'8;ES
P6L'
=ESPKMS
=ESCI6PC6N8
ujp q 4 valor de la etiqueta PC5Fq 4 4 Salto incondicional
fjp q 4 valor de la etiqueta if store+SP]Ffalso then PC5Fq&
SP5FSP41
4 4 Salto condicional
ESPEC6'L
68S;IKCC6N8 P D 'CC6N8 P6L' '8;ES P6L'
=ESPKMS
=ESCI6PC6N8
csp 4 mnemotcnico del
procedimiento
est"ndar
llama al procedimiento est"ndar
correspondiente
depende de los
requerimientos de
cada procedimiento
depende del
procedimiento
Llama a un
procedimiento
est"ndar
1):
El cdigo objeto
PI-CE=6$6E8;-S T JK8C6-8ES
68S;IKCC6N8 P D 'CC6N8 C-$E8;'I6- =ESCI6PC6-8
mst p nivel del
procedimiento
llamador 4 nivel del
procedimiento
llamado G 1
4 store+SPG>]5Fbase *p0&
store+SPG2]5F$P&
store+SPG)]5FEP&
SP5FSPG?
enlace est"tico
enlace din"mico
salva EP
los par"metros pueden ser ahora
evaluados desde SPG1
Renera el mar7
stac7. La
primera ve% es
una e(cepcin
cup p q nQ de ubicaciones
para los par"metros
direccin de
comien%o del
procedimiento
$P5FSP4*pG)0&
store+$PG)]5Fpc&
pc5Fq
salva la direccin de retorno
salta a la dir. VqW de comien%o del
procedimiento.
Llamada a un
procedimiento de
usuario
ent p q longitud de los
segmentos que
quedan en el marco
de pila
Si pF1 ent. q es el
tamaAo requerido
para las variables
locales.
Si pF> ent. q es el
tamaAo de la pila
local.
if PF1 then
begin SP5F$PGq&
if SPE8P error
*store overflo90
end else
begin EP5FSPGq&
if EPE8P error
*store overflo90
end&
colisin de pila ! heap
colisin de pila ! heap
Entrar en un
procedimiento.
Si pF1, se
posiciona SP.
Si pF>, se
posiciona EP.
ret ; SegBn sea ;5
VpWpF.&
ViWpF1&
VrWpF>&
VcWpF2&
VbWpF)&
VaWpF?&
4 si pF. entonces
SP5F$P41&
si pF1,>,2,)? ent.
SP5F$P&
PC5Fstore+$P G)]&
EP5Fstore+$PG2]&
$P5Fstore+$PG>]&
retorna de un procedimiento
un proced. no retorna. result.
retorna de una funcin
res. de la func. en la pila local
salto de retorno
restaura EP
enlace din"mico
Ietorna de un
procedimiento o
funcin.
stp 4 4 interpreting5Ffalse& es la Bnica forma de salir del intrprete Para la
interpretacin
1)9
El cdigo objeto
1?.
5.#.- Pro$rama"i%n en "%i$o P.
?.2.1.4 E(plicacin de las instrucciones
Se proporciona a continuacin una e(plicacin detallada del funcionamiento de
las instrucciones m"s complejas, con ejemplos para una ma!or claridad.
?.2.1.1.4 6nstrucciones de carga ! almacenamiento en la pila5
Estas instrucciones sitBan un nuevo elemento en la cima de la pila.
<eamos las principales caracter#sticas ! diferencias entre ellas.
- L-=5 Carga el contenido de una direccin de memoria, de la que se
especifica la base ! el despla%amiento.
lod; p q
X p5 es el nQ de enlaces est"ticos a seguir para encontrar la direccin base
*pF. indica el procedimiento actual& pF1 es el que engloba a ste,...0.
X q5 es el despla%amiento dentro del bloque.
Ejemplo5
lodi . ? carga el entero de la posicin ? del bloque actual
- L=-5 Carga el contenido de una direccin del nivel base *"rea de datos del
programa principal0. Slo es necesario especificar la direccin, !a que sta
es fija *la base es .0. Es la versin global de la instruccin L-=.
ldo; q
X q5 Es la direccin *absoluta0.
Ejemplo5
ldoi 9 carga el entero situado en la posicin 9 del primer bloque
- S;I5 'lmacena el elemento de la cima de la pila en la posicin de memoria
especificada mediante base ! despla%amiento.
str; p q
X p5 nQ de enlaces est"ticos a recorrer para llegar a la direccin base.
X q5 despla%amiento dentro del marco de pila.
El cdigo objeto
Ejemplo5
strc . ? almacena el car"cter de la cima en la pos ? de este nivel
- SI-5 'lmacena en una direccin del nivel base. <ersin global de S;I. La
direccin ser" absoluta.
sro; q
X q5 direccin dentro del primer marco de pila.
Ejemplo5
sroi 9 almacena el entero de la cima en la pos 9 del nivel base.
- L='5 Carga una direccin *la direccin en s#, no su contenido0,
especificando la base ! el despla%amiento.
lda p q
X p5 como antes, indicador del nivel de profundidad.
X q5 direccin a cargar, relativa al marco de pila indicado por p.
Ejemplo5
lda 1 ? carga la direccin ? del proc. que engloba al actual.
8-;'5 Cabe destacar la diferencia entre cargar una direccin de memoria en s#,
! cargar un elemento que sea del tipo direccin.
lda . ? carga la direccin ? del marco de pila actual.
loda . ? carga el elemento almacenado en la pos. ?, que se trata de una
direccin *cualquiera0.
- L'-5 Carga una direccin absoluta. <ersin global de L='.
lao q
X q5 direccin absoluta.
Ejemplo5
lao ? carga la direccin ? del nivel base *que es la del input0
1?>
El cdigo objeto
- S;-5 'lmacenamiento indirecto. Ruarda el elemento situado en la cima de
la pila en la direccin que est" almacenada justo debajo de la cima *SP410.
Por esto, antes de cargar en la pila el elemento que se desea almacenar, ser"
necesario cargar la direccin de destino.
La direccin destino puede ser absoluta o relativa.
sto;
Ejemplo5
stoi
Suponiendo esta situacin previa de la pila,
1.
dir 1,?
...
el efecto de la instruccin ser" el de almacenar el entero *1.0 de la cima
en la direccin ? del marco de pila del procedimiento que engloba al
actual.
- L=C5 Carga una constante.
ldc; q
X q5 es el valor de la constante a cargar.
Ejemplos5
ldci 1 4 carga un 1.
ldcc@'@ 4 carga el car"cter '.
ldcb 1 4 carga el valor lgico verdadero
ldcb . 4 carga falso.
- 68=5 =ireccionamiento indirecto o bBsqueda inde(ada. Carga el elemento
situado en la posicin q a partir de la direccin almacenada en la cima de la
pila.
ind; q
X q5 es el nQ de unidades de memoria de despla%amiento.
Ejemplo5
indi 2
1?2
El cdigo objeto
Primeramente se e(trae la direccin de la cima ! se accede a ella.
=espus se direcciona 2 posiciones adelante a partir de aqu#, ! se carga el
elemento encontrado.
Esta instruccin es de especial utilidad para el acceso a vectores o
estructuras de datos complejas.
- LC'5 Carga la direccin de una constante. La constante se encontrar"
situada en el bloque de memoria destinado a las constantes.
lca q
X q5 es la direccin de una constante. Si en lugar de una direccin se
proporciona un valor constante, el valor se sitBa en la %ona de constantes,
! se carga su direccin.
Ejemplo5
lca@,ola mundo@ SitBa la ristra en la %ona de constantes, ! carga
la direccin de su primer car"cter.
Como se ha visto, se tienen las siguientes asociaciones5
X L-= 4 cargar elemento de direccin relativa.
X L=- 4 cargar elemento de direccin global.
X S;I 4 almacenar elemento de direccin relativa.
X SI- 4 almacenar elemento de direccin global.
X L=' 4 cargar direccin relativa.
X L'- 4 cargar direccin absoluta.
?.2.1.>.4 6nstrucciones de control
Estas instrucciones tienen un efecto sobre el control de la ejecucin del
programa.
- $S;5 Renera un nuevo Lmar7 stac7L, que corresponde a la parte de
par"metros impl#citos del marco de pila.
mst q
X q5 se define como la e(presin5 nivel de anidamiento del procedimiento
llamador 4 nivel del llamado G 1.
1?)
El cdigo objeto
Ejemplo5
Si estando en el programa principal *nivel .0 se desea llamar a un
procedimiento anidado en l *nivel 10, el valor de q ser"5
q F . 4 1 G 1 F .
! la instruccin5 mst .
- CKP5 Llama al procedimiento de usuario referenciado por la etiqueta q, con
un nBmero de par"metros p.
cup p q
X p5 nQ de posiciones reservadas para el "rea de par"metros.
X q5 etiqueta del procedimiento llamado.
Ejemplo5
cup > L 1 4 sitBa el PC en la posicin de L1. Se reservan dos
posiciones para los par"metros.
- E8;5 Msta es una instruccin especial que tiene dos funciones. La primera
es situar el valor de SP para el nuevo marco de pila, tras el "rea de variables
locales. La segunda es situar EP al valor m"(imo que puede adquirir la pila
local.
ent p q
X Si pF1, q es el tamaAo del mar7 stac7 G par"metros G variables locales.
Si pF>, q es el tamaAo m"(imo de la pila local.
Ejemplo5
Suponiendo que se trate del primer marco de pila, tenemos que el
mar7 stac7 ocupa ? posiciones, ! luego le siguen ) de entrada salida.
Suponiendo tambin que ha! declaradas dos variables locales, queda
;amaAo F ? G ) G > F 11
as# que se reservar"n las posiciones . 4 1.5
ent 1 1.
! SP adoptar" el valor de 1., !a que con cualquier instruccin que
produ%ca una carga en la pila, se incrementar" antes SP.
'hora suponemos que el tamaAo m"(imo calculado en tiempo de
compilacin para la pila local, teniendo en cuenta el efecto sobre la pila
de las instrucciones generadas es de ),
ent > )
1??
El cdigo objeto
8-;'5 En la pr"ctica, los valores de q no ser"n conocidos en el
momento en que se generan estas instrucciones, que es al inicio del
procedimiento. 's# que se indica la direccin de una etiqueta, a la cual se
le dar" valor al final del procedimiento.
ent 1 L1
ent > L>
...
L1 F 1.
L> F )
- IE;5 Ietorna de un procedimiento o funcin.
ret;
Si ;F*i,c,b,a0 se deja en la pila el primer elemento del marco *valor de
retorno0, que quedar" situado en la cima de la pila del marco inferior.
Para ello se deber" almacenar antes el valor de retorno en esta posicin.
Ejemplo5
lodi . .
reti
Si ;Fp, indica el retorno de un procedimiento, ! no se deja nada en la
pila.
Ejemplo5
retp
?.2.1.2.4 Procedimientos est"ndar
El cdigo P cuenta con una amplia variedad de procedimientos est"ndar que
reali%an funciones complejas mu! variadas. Sin embargo, para el prototipo solo
son necesarios aquellos relacionados con la entrada ! salida de datos.
Los procedimientos est"ndar son llamados mediante una instruccin especial
CSP, que tiene como Bnico par"metro el mnemotcnico de tres letras que
corresponda al procedimiento a llamar.
Cada procedimiento requiere una situacin concreta en la pila antes de que se
produ%ca la llamada& esto es, cada uno tendr" una lista de par"metros diferente.
'n"logamente, cada uno tendr" un efecto en la pila diferente, tras la ejecucin
del procedimiento.
4 I=65 Procedimiento que se encarga de la lectura de un nBmero entero
desde la entrada especificada. Los requerimientos de la pila suponen cargar
primero la direccin destino de la lectura, ! la direccin de entrada de los datos.
1?C
El cdigo objeto
+cargar direccin destino/
+cargar direccin de entrada/
csp rdi
La direccin de entrada puede ser una de las dos direcciones del nivel
base reservadas para la entrada de datos5 la posicin ? para el teclado, ! la 3 para
ficheros.
Ejemplo5
lda . 9
lao ?
csp rdi
El nBmero entero recogido de la direccin de entrada del teclado se
almacena en la posicin 9 del nivel actual.
El efecto en la pila consiste en sacar los dos elementos de la cima
*SP5FSP4>0.
4 I=C5 Es un procedimiento igual al anterior, pero destinado a la entrada de
caracteres.
lda . 9
lao ?
csp rdc
4 IL85 Es tambin un procedimiento de entrada, slo que el elemento de
entrada no se almacena. Simplemente se espera una pulsacin del teclado. Por lo tanto,
no se especificar" ninguna direccin destino.
lao ?
csp rln
El efecto en la pila ser" solamente decrementar la cima *SP5FSP410.
4 YI65 Procedimiento que se encarga de la salida de datos de tipo entero por la
v#a de salida especificada. En la pila debe encontrarse el valor entero a imprimir, el
nBmero de espacios destinado para la salida, ! la direccin de salida.
+cargar elemento de tipo entero/
+cargar nQ de espacios/
+cargar direccin de salida/
csp 9ri
La direccin de salida ser" una de las dos destinadas a tal fin. La primera es la
direccin global C, ! es para la salida por pantalla. La segunda es la direccin :,
destinada a la salida a ficheros.
1?3
El cdigo objeto
Kn nBmero de espacios menor al nBmero de posiciones que ocupe el elemento
supone un truncamiento del mismo por la derecha. Kn nBmero ma!or supone la
alineacin a la derecha del elemento.
Ejemplo5
lodi . 9
ldci 1
lao C
csp 9ri
El resultado es el de mostrar por pantalla el contenido de la direccin 9 del "rea
de datos actual, en una sola posicin de la pantalla.
El efecto que causa sobre la pila es el de sacar los tres elementos de la cima
*SP5FSP420.
4 YIC5 'n"logo al anterior, pero destinado a la salida de elementos del tipo
car"cter.
lodc . 9
ldci 1
lao C
csp 9rc
4 YIS5 'n"logo al anterior, pero para la salida de ristras de caracteres. Iequiere
un par"metro adicional, que es la longitud de la cadena, situado en segundo lugar, tras la
direccin del primer elemento de la cadena.
+cargar la direccin del primer elemento de la cadena/
+cargar la longitud de la cadena/
+cargar el nBmero de espacios para la salida/
+cargar la direccin de salida/
Ejemplo5
lca@,ola mundo@
ldci 1.
ldci 1.
lao C
Causa en la pila el efecto de decrementar la cima en cuatro unidades *SP5FSP4)0.
4 YL85 Procedimiento que env#a a la salida los caracteres de avance de l#nea !
retorno de carro.
lao C
csp 9ln
El efecto sobre la pila consiste en decrementar la cima *SP5FSP410.
1?:
El cdigo objeto
?.2.>.4 Los programas en cdigo P
Los programas escritos en este lenguaje ensamblador constan de una serie de
l#neas, que pueden ser comentarios, etiquetas, instrucciones, o marcas de ensamblado.
Kn comentario consta de la letra LiL en la primera posicin de la l#nea, seguida
de cualquier ristra de caracteres, e indicando que la l#nea completa ser" ignorada por el
intrprete. La utilidad es e(clusivamente para el lector humano. Es comBn encontrar
programas con un comentario cada die% instrucciones, indicando el nBmero de la
instruccin. Por ejemplo5
i 1.
Las definiciones de etiquetas constan de la letra LLL seguida de un nBmero, !
opcionalmente seguida del signo igual ! otro nBmero.
L 1.
L 1> F )
La primera forma corresponde a la direccin destino de un salto o una llamada.
El segundo caso se utili%a en las instrucciones E8; de la forma descrita en el
apartado anterior, ! lo que se hace realmente es reempla%ar la etiqueta por el valor
numrico asignado a la misma.
El formato de las instrucciones !a se ha descrito en los apartados anteriores.
Las marcas de ensamblado consisten e(clusivamente en la letra LqL.
Kn programa correctamente escrito en cdigo P tiene una estructura tal como
sta5
+bloques de cdigo correspondientes a los procedimientos/
bloque de cdigo del programa principal
bloque de llamada al programa principal
El bloque de llamada al programa principal es est"ndar, salvo la etiqueta que
referencia a la primera instruccin del bloque del programa principal5
q
mst .
cup . L (
stp
q
donde ( ser" el valor de la etiqueta que referencia al programa principal.
1?9
El cdigo objeto
Esta porcin de cdigo ser" siempre lo primero que se ejecute, ! el efecto es el
de crear el marco de pila especial del programa principal, ! situar el PC en la primera
instruccin del programa. ;ras el retorno del programa principal, se ejecutar" la
instruccin stp para indicar la finali%acin de la interpretacin.
El bloque del programa principal tiene la siguiente estructura5
L (
ent 1 L (1
ent > L (>
+cuerpo/
retp
L (1 F !1
L (> F !>
donde (, (1 ! (> son las etiquetas. !1 es el valor del par"metro q de la primera
instruccin E8;, !> es el valor de q en la segunda. Como se e(plic con la instruccin
E8;, estos valores ser"n calculados a partir de las instrucciones contenidas en el
cuerpo.
Los procedimientos de usuario pueden situarse en cualquier punto del cdigo,
aunque los bloques de cdigo no pueden anidarse ni solaparse.
La estructura de cada procedimiento ser" simplemente5
L (
ent 1 L (1
ent > L (>
+cuerpo/
L (1 F !1
L (> F !>
La instruccin de retorno deber" encontrarse accesible en algBn punto del cuerpo
del procedimiento, para asegurar que se devuelve el control a la subrutina llamadora.
Iecordemos que la instruccin de retorno de un procedimiento es,
retp
1C.
El cdigo objeto
Para una funcin, ser" necesario cargar el valor de retorno en la posicin
destinada a tal fin *la primera del marco de pila0,
cargar un valor del tipo ;
str; . .
ret;
La llamada a un procedimiento ser" de la forma,
mst n
+cargar los par"metros, si los ha!/
cup np L (
donde n es el par"metro q de la instruccin $S;, que recordemos que se define
como el nivel de anidamiento del bloque llamador menos el del llamado m"s uno. np es
el nBmero de par"metros, ! ( es el valor numrico de la etiqueta del procedimiento
llamado.
- =ireccionamiento de variables5
X <ariables globales5
Carga5 L=-
'lmacenamiento5 SI-
X <ariables locales5
Carga5 L-=
'lmacenamiento5 S;I
X Par"metro por valor5
P'S-5 lod; p q
cup
KS-5
Carga5 L-=
'lmacenamiento5 S;I
1C1
El cdigo objeto
X Par"metro por referencia5
P'S-5 lda p q
cup
KS-5
Carga5 loda p q
ind; .
'lmacenamiento5 loda p q
+cargar valor a almacenar/
sto;
X Constantes5
Carga5 L=C.
5.&.- E'emp(o!.
Consideremos un breve ejemplo de la evolucin de la pila local, suponiendo un
marco de pila de un procedimiento cualquiera, con una sola variable. La pila
local comien%a a partir de la l#nea gruesa, justo despus de las variables.
lodi . ? 4 carga la variable a, que est" en la posicin ?.
:.
3.
C. a
?. a
...
ldci 2 4 carga la constante 2.
:.
3. 2
C. a
?. a
...
1C>
El cdigo objeto
adi 4 suma los dos elementos de la cima, ! deposita el
resultado en la cima.
:.
3.
C. a G 2
?. a
...
stri . ? 4 'lmacena el elemento de la cima en la variable a,
que est" en la posicin ?.
:.
3.
C.
?. a G 2
...
?.).1.4 -peraciones
a0 'ritmticas5
a 5F a G 1
lodi . 9
ldci 1
adi
stri . 9
o bien,
lodi . 9
inci
stri . 9
a 5F 4 a
lodi . 9
ngi
stri . 9
b0 Lgicas5
not a
lodi . 9
not
true and false
ldcb 1
ldcb .
and
1C2
El cdigo objeto
c0 Ielacionales5
a F b
lodi . 9 *a0
lodi . 1. *b0
equi
d0 Saltos5
goto etiq1
ujp L 1 *etiq10
if false then goto L1
fjp L 1
?.).>.4 Kn programa completo
program
var a,b: integer endvar
procedure dividir
parameter
value r: integer
endparam
var q: integer endvar
q:=0;
while r>=b do
r:=r-b;
q:=q+1
endwhile;
writeln(!ociente , q:", re#to , r:"$
endproc dividir
read(a,b$;
i% (a>0$ and (b>0$ then
dividir(a$
endi%
endprogram
1C)
El cdigo objeto
[bloque del procedimiento dividir]
l 1
ent 1 l > = 6 SP:=6
ent > l 2 = 5 EP:=SP+5=11
ldci . Crg un !
stri . C lo lmcen en l po"6 #q$
l )
lodi . ? crg el contenido de l dir5 #r$
ldoi 1. crg l vrible globl % #b$
geqi r &= b '
fjp l ? "lt "i () *l"e en l cim +,
lodi . ? crg r
ldoi 1. crg b
sbi r - b
stri . ? lmcen en r
lodi . C crg q
ldci 1 crg 1
adi q + 1
stri . C lmcen en q
ujp l ) "lt +6
l ?
lca@Cociente @ crg l dir que punt l ri"tr
ldci 9 crg % #long cden$
ldci 9 crg % #n. e"pcio"$
lda 1 C crg l dir de "lid por pntll
csp 9rs llm /0S #imprimir ri"tr$
lodi . C crg en contenido de l dir6 #q$
ldci ) crg un 1 #n. e"pcio"$
lda 1 C crg l dir de "lid por pntll
csp 9ri llm /02 #imprimir entero$
lca@ resto @ [igul que nte"]
ldci 3
ldci 3
lda 1 C
csp 9rs
lodi . ?
ldci )
lda 1 C
csp 9ri
lda 1 C crg l dir de "lid por pntll
csp 9ln llm /+3 #vnce de l4ne$
retp retorno de dividir
l >F C
l 2F ?
[*in del procedimiento dividir]
1C?
El cdigo objeto
[bloque del progrm principl]
l C
ent 1 l 3 = 1! SP:=1!
ent > l : = 1 EP:=SP+1=11
lao 9 crg l dir% globl #$
lda . ? crg l dir de entrd por tecldo
csp rdi llm 052 #entrd de entero$
lao 1. crg l dir1! #b$
lda . ? crg l dir de entrd por tecldo
csp rdi llm 052 #entrd de entero$
ldoi 9 crg el contenido de l po"% #$
ldci . crg un !
grti & ! '
ldoi 1. crg el contenido de l po"1! #b$
ldci . crg un !
grti b & ! '
and conjuncin de lo" 6 elto" de l cim
fjp l 9 "lt "i *l"o +11
mst . prepr el mr7 "tc7 de nivel ! #dividir$
ldoi 9 crg el 8nico pr9metro del proc #$
cup 1 l 1 llm dividir #+:$ con un pr9metro
l 9
retp retorno del progrm principl
l 3F 1.
l :F )
[*in del progrm principl]
[bloque de llmd l progrm principl]
q
mst . prepr el mr7 "tc7 e"pecil de nivel ! #progrm principl$
cup . l C llm l progrm principl #+;$ con ! pr9metro"
stp pr l interpretcin
q
[*inl del progrm]
8-;'5 La escritura en letra cur"iv no pertenece al cdigo del programa.
1CC
El cdigo objeto
Los marcos de pila contenidos en la pila de marcos ser"n de la forma que se
muestra en la figura. El primer marco corresponde al bloque del programa principal, !
el segundo al bloque del procedimiento dividir.
. 1 > 2 ) ? C 3 : 9 1. 11 1> 12 1)
J< SL =L EP IE i o prd prr a b
mar7 stac7 locales pila local
$P SP EP
marco de pila 1 *del programa principal0
*1?G0 . 1 > 2 ) ? C 3 : 9 1. 11
J< SL =L EP IE r q
mar7 stac7 pila local
param local
$P SP EP
marco de pila > *del procedimiento dividir0
1C3
El cdigo objeto
1C:

Вам также может понравиться

  • Unidad V Redes Inalambricas
    Unidad V Redes Inalambricas
    Документ47 страниц
    Unidad V Redes Inalambricas
    Sergio Reyes Rodriguez
    Оценок пока нет
  • RRS Tap U2
    RRS Tap U2
    Документ27 страниц
    RRS Tap U2
    Sergio Reyes Rodriguez
    Оценок пока нет
  • Investigacion Video Animacion
    Investigacion Video Animacion
    Документ13 страниц
    Investigacion Video Animacion
    Sergio Reyes Rodriguez
    Оценок пока нет
  • Optimizacion Local UNIDAD 4AUTOMATAS
    Optimizacion Local UNIDAD 4AUTOMATAS
    Документ2 страницы
    Optimizacion Local UNIDAD 4AUTOMATAS
    Sergio Reyes Rodriguez
    Оценок пока нет
  • Inf Un 3 Tap.
    Inf Un 3 Tap.
    Документ33 страницы
    Inf Un 3 Tap.
    Sergio Reyes Rodriguez
    Оценок пока нет
  • Actuadores
    Actuadores
    Документ41 страница
    Actuadores
    Sergio Reyes Rodriguez
    Оценок пока нет
  • 2 Ejercicio de Exclusiones RESPUESTAS
    2 Ejercicio de Exclusiones RESPUESTAS
    Документ2 страницы
    2 Ejercicio de Exclusiones RESPUESTAS
    soloc2
    Оценок пока нет
  • Actuadores Electricos
    Actuadores Electricos
    Документ30 страниц
    Actuadores Electricos
    Iván Ríos
    Оценок пока нет
  • Carrito Seguidor de Linea
    Carrito Seguidor de Linea
    Документ22 страницы
    Carrito Seguidor de Linea
    Alejandro Rodriguez
    Оценок пока нет
  • D 35940 PDF
    D 35940 PDF
    Документ257 страниц
    D 35940 PDF
    Sergio Reyes Rodriguez
    Оценок пока нет
  • Optimizacion Local
    Optimizacion Local
    Документ1 страница
    Optimizacion Local
    Sergio Reyes Rodriguez
    Оценок пока нет
  • JJMP U1
    JJMP U1
    Документ35 страниц
    JJMP U1
    Sergio Reyes Rodriguez
    Оценок пока нет
  • Optimizacion Local UNIDAD 4AUTOMATAS
    Optimizacion Local UNIDAD 4AUTOMATAS
    Документ2 страницы
    Optimizacion Local UNIDAD 4AUTOMATAS
    Sergio Reyes Rodriguez
    Оценок пока нет
  • Simuladores Negocios Herramienta Aprendizaje
    Simuladores Negocios Herramienta Aprendizaje
    Документ5 страниц
    Simuladores Negocios Herramienta Aprendizaje
    Sergio Reyes Rodriguez
    Оценок пока нет
  • 2 3GestionProyectos
    2 3GestionProyectos
    Документ53 страницы
    2 3GestionProyectos
    Sergio Reyes Rodriguez
    Оценок пока нет
  • Unida Iii Costo Anual Upes 2013
    Unida Iii Costo Anual Upes 2013
    Документ24 страницы
    Unida Iii Costo Anual Upes 2013
    Sergio Reyes Rodriguez
    Оценок пока нет
  • MPJJ Tap U2
    MPJJ Tap U2
    Документ21 страница
    MPJJ Tap U2
    Sergio Reyes Rodriguez
    Оценок пока нет
  • Informe 504-A Onservacón
    Informe 504-A Onservacón
    Документ10 страниц
    Informe 504-A Onservacón
    Sergio Reyes Rodriguez
    Оценок пока нет
  • PFC Juan Carlos Gonzalez Harod
    PFC Juan Carlos Gonzalez Harod
    Документ98 страниц
    PFC Juan Carlos Gonzalez Harod
    Sergio Reyes Rodriguez
    Оценок пока нет
  • JJMP U1
    JJMP U1
    Документ39 страниц
    JJMP U1
    Sergio Reyes Rodriguez
    Оценок пока нет
  • Inf Un 3 Tap.
    Inf Un 3 Tap.
    Документ33 страницы
    Inf Un 3 Tap.
    Sergio Reyes Rodriguez
    Оценок пока нет
  • Metodos U2B Juan
    Metodos U2B Juan
    Документ4 страницы
    Metodos U2B Juan
    Sergio Reyes Rodriguez
    Оценок пока нет
  • MPJJ Tap U2
    MPJJ Tap U2
    Документ21 страница
    MPJJ Tap U2
    Sergio Reyes Rodriguez
    Оценок пока нет
  • JJMP U1
    JJMP U1
    Документ35 страниц
    JJMP U1
    Sergio Reyes Rodriguez
    Оценок пока нет
  • MPJJ Tap U2
    MPJJ Tap U2
    Документ21 страница
    MPJJ Tap U2
    Sergio Reyes Rodriguez
    Оценок пока нет
  • Inf Un 3 Tap.
    Inf Un 3 Tap.
    Документ33 страницы
    Inf Un 3 Tap.
    Sergio Reyes Rodriguez
    Оценок пока нет
  • Informed e List As
    Informed e List As
    Документ13 страниц
    Informed e List As
    Sergio Reyes Rodriguez
    Оценок пока нет
  • Quimica Repor
    Quimica Repor
    Документ57 страниц
    Quimica Repor
    Sergio Reyes Rodriguez
    Оценок пока нет
  • Ar Boles
    Ar Boles
    Документ30 страниц
    Ar Boles
    Sergio Reyes Rodriguez
    Оценок пока нет
  • GDP - Curso Ept PDF
    GDP - Curso Ept PDF
    Документ25 страниц
    GDP - Curso Ept PDF
    DSOQUI
    Оценок пока нет
  • Procedimiento Estándar de Inducción de Personal
    Procedimiento Estándar de Inducción de Personal
    Документ10 страниц
    Procedimiento Estándar de Inducción de Personal
    Lorenzo Jorge Soriano Loyola
    100% (1)
  • Lenguaje Ensamblador 8086
    Lenguaje Ensamblador 8086
    Документ2 страницы
    Lenguaje Ensamblador 8086
    Jorge Luis Cruz Apaza
    Оценок пока нет
  • Politicas Aplicadas en Las Maquinas Virtuales2
    Politicas Aplicadas en Las Maquinas Virtuales2
    Документ11 страниц
    Politicas Aplicadas en Las Maquinas Virtuales2
    Adrian Yesir
    Оценок пока нет
  • Sem 283
    Sem 283
    Документ84 страницы
    Sem 283
    Cesar Espinoza
    Оценок пока нет
  • Hoja de Vida Maria Camila Leon Bertel PDF
    Hoja de Vida Maria Camila Leon Bertel PDF
    Документ4 страницы
    Hoja de Vida Maria Camila Leon Bertel PDF
    Camii Leon
    Оценок пока нет
  • Administración cadena abastecimiento Ford
    Administración cadena abastecimiento Ford
    Документ18 страниц
    Administración cadena abastecimiento Ford
    Alejandro Morales
    100% (2)
  • Ejercicios Exercises U3 U4 U5
    Ejercicios Exercises U3 U4 U5
    Документ12 страниц
    Ejercicios Exercises U3 U4 U5
    Hatapro Abaran Said
    Оценок пока нет
  • Definición de Icono
    Definición de Icono
    Документ2 страницы
    Definición de Icono
    mariadelourdesgarcia
    Оценок пока нет
  • Diseño Del Datacenter Tier 4
    Diseño Del Datacenter Tier 4
    Документ12 страниц
    Diseño Del Datacenter Tier 4
    JhonnySanchez
    Оценок пока нет
  • Agropecuaria El Roble C PDF
    Agropecuaria El Roble C PDF
    Документ1 страница
    Agropecuaria El Roble C PDF
    Rafael Camejo
    Оценок пока нет
  • Calculo de CBR Percentil PDF
    Calculo de CBR Percentil PDF
    Документ1 страница
    Calculo de CBR Percentil PDF
    Gunnar P. Suni Huaracha
    Оценок пока нет
  • Capitulo3 - BDD - Diseño de Una Bases de Datos Distribuida Parte1
    Capitulo3 - BDD - Diseño de Una Bases de Datos Distribuida Parte1
    Документ97 страниц
    Capitulo3 - BDD - Diseño de Una Bases de Datos Distribuida Parte1
    Pann Konwebo
    Оценок пока нет
  • Manejo de Sistemas Operativos
    Manejo de Sistemas Operativos
    Документ29 страниц
    Manejo de Sistemas Operativos
    ulises
    Оценок пока нет
  • Atmega 328p Español
    Atmega 328p Español
    Документ448 страниц
    Atmega 328p Español
    vertiagua
    Оценок пока нет
  • CV - Laura Guardo Arnedo.
    CV - Laura Guardo Arnedo.
    Документ2 страницы
    CV - Laura Guardo Arnedo.
    Jose Daniel Maza
    Оценок пока нет
  • Cuadro STCW 2
    Cuadro STCW 2
    Документ1 страница
    Cuadro STCW 2
    ferkm
    Оценок пока нет
  • Cat Versamed Ivent201 Ab
    Cat Versamed Ivent201 Ab
    Документ2 страницы
    Cat Versamed Ivent201 Ab
    luiggi colmenares
    Оценок пока нет
  • Ball and Beam
    Ball and Beam
    Документ71 страница
    Ball and Beam
    Checo Rock
    Оценок пока нет
  • 4.1 LVS Pasos
    4.1 LVS Pasos
    Документ15 страниц
    4.1 LVS Pasos
    Jesús Navarro Alvarez
    Оценок пока нет
  • 1392 Guia Intro Econometria Con Gretl
    1392 Guia Intro Econometria Con Gretl
    Документ166 страниц
    1392 Guia Intro Econometria Con Gretl
    cova5609
    Оценок пока нет
  • Guia 11 - Fundamentos de Ti
    Guia 11 - Fundamentos de Ti
    Документ138 страниц
    Guia 11 - Fundamentos de Ti
    José Manuel Carela
    Оценок пока нет
  • Alfresco Manual
    Alfresco Manual
    Документ46 страниц
    Alfresco Manual
    Andrew Divemaster
    100% (6)
  • Cubo de Leds
    Cubo de Leds
    Документ81 страница
    Cubo de Leds
    Sergio Alejandro Ariza Ocampo
    Оценок пока нет
  • Actividades Taller. AUTOGESTIVO
    Actividades Taller. AUTOGESTIVO
    Документ6 страниц
    Actividades Taller. AUTOGESTIVO
    Blanca Rosa Vargas de la Paz
    100% (1)
  • Primer Grado - Sesion de Aprendizaje 02
    Primer Grado - Sesion de Aprendizaje 02
    Документ4 страницы
    Primer Grado - Sesion de Aprendizaje 02
    Juan Vasquez Paisig
    100% (1)
  • Evaluacion Diagnostica 4
    Evaluacion Diagnostica 4
    Документ4 страницы
    Evaluacion Diagnostica 4
    Flor Maria Dominguez Mego
    Оценок пока нет
  • Entregable 02 Administración de Operaciones Ii
    Entregable 02 Administración de Operaciones Ii
    Документ10 страниц
    Entregable 02 Administración de Operaciones Ii
    CAMILA HORTENCIA ZUAZO RAMOS
    Оценок пока нет
  • 1
    1
    Документ10 страниц
    1
    Ariel Sebastián
    Оценок пока нет
  • Taller N°1 - Vanessa Alvarez
    Taller N°1 - Vanessa Alvarez
    Документ24 страницы
    Taller N°1 - Vanessa Alvarez
    Vanne Formalhaut
    Оценок пока нет