Presentación Funciones (o rutinas) Declaración de una función Llamada a una función La pila (STACK)... 9
|
|
- Javier Montero Castillo
- hace 6 años
- Vistas:
Transcripción
1
2 Todos los derechos de propiedad intelectual de esta obra pertenecen en exclusiva a la Universidad Europea de Madrid, S.L.U. Queda terminantemente prohibida la reproducción, puesta a disposición del público y en general cualquier otra forma de explotación de toda o parte de la misma. La utilización no autorizada de esta obra, así como los perjuicios ocasionados en los derechos de propiedad intelectual e industrial de la Universidad Europea de Madrid, S.L.U., darán lugar al ejercicio de las acciones que legalmente le correspondan y, en su caso, a las responsabilidades que de dicho ejercicio se deriven.
3 Contenido Presentación... 4 Funciones (o rutinas)... 5 Declaración de una función... 6 Llamada a una función... 7 La pila (STACK)... 9 Instrucciones para manejar la pila Invocación: Instrucciones CALL Y RCALL Retorno de funciones: instrucción RET (RETorno de la rutina) Uso de registros en funciones Resumen
4 Presentación La programación estructurada, base de cualquier otra metodología de programación, también está soportada en ensamblador, aunque de una manera muy simple pero robusta. La programación estructurada está fundamentada en las funciones, trozos de código independiente, autónomo y reutilizable. Es decir, trazos de código que resuelven un problema y que son independientes del resto de código del programa, lo que lo hace muy portable y reutilizable. La única comunicación que mantiene con el resto del programa es a través de parámetros, por los que se le pasa la información de entrada y por la que sale la información calculada. Las funciones, además, fundamentan su funcionamiento en la pila. Un concepto de almacenamiento de información, cuyo principio de funcionamiento es último en entrar, primero en salir (LIFO). Es decir, podemos entender una pila, como un almacenamiento donde los elementos están apilados verticalmente, de manera que solo la cima de la pila es accesible, siendo solo el elemento último en poner en la pila, el único que puede ser sacado. Los demás elementos (aunque visibles) no pueden ser sacados de la pila, mientras encima de ellos haya otros elementos. Objetivos Los objetivos que se pretenden alcanzar con este recurso son los siguientes: Analizar el funcionamiento de la pila software que incluyen todos los procesos. Reproducir el manejo de la pila software en ensamblador. 4
5 Funciones (o rutinas) Cuanto mayor es una organización empresarial, más crecen las responsabilidades y el volumen de ésas. Por tanto, la evolución natural de las organizaciones les lleva a ir repartiendo las responsabilidades sobre las actividades que se van desarrollando. Las rutinas y funciones (que se diferencian porque las primeras no tienen parámetros y las segundas sí) son conceptos básicos en todos los lenguajes de programación y base de la programación estructurada. Permiten la reutilización de código, la separación/división de problemas y la reutilización de una manera muy simple. Las funciones se pueden agrupar, formado bibliotecas, de modo que puedan volver a ser utilizadas en el futuro, sin necesidad de reescribir el código que las implementa de forma directa en nuestro propio proyecto. Además, las funciones (o rutinas) son la base de la división de trabajo en equipos de desarrollo de varios programadores. Permitiendo una división del trabajo y una fácil unificación posterior. Dando lugar, al primer elemento básico necesario para un primer nivel de abstracción en el diseño de software (Software Engineering) Sea cual sea el lenguaje de programación que se use, o el nivel de abstracción que permita, por ejemplo, en programación orientado a objetos, al final, todo el código es traducido a estas pequeñas instrucciones de código máquina y a sus simples, pero efectivas funciones. No importan el tamaño del objeto, la forma de los parámetros de una función u otras abstracciones, que al final, serán la pila y las llamadas a las funciones las encargadas de dar soporte a todo este código de alto nivel. 5
6 Declaración de una función Una función, es sólo un grupo de instrucciones que realizan una tarea determinada y fija, y luego de terminar su labor, la ejecución del programa vuelve al punto de llamada. Por tanto, el uso típico que se le da a una función, es el de solucionar un problema aislado, o el de encapsular un trozo de código que se va a repetir muchas veces a lo largo de nuestro programa. Ejemplo de repetición Crear una rutina (no tiene parámetros de entrada ni salida) que permita: Borrar todos los bits del puerto B. Inicializar el temporizador 0. Activar la interrupción de tiempo. Si esta fuese una tarea que se realiza varias veces en el programa, es buena idea encapsularlo en una rutina, de manera que cada vez que se quiera hacer esta actividad, solo haya que invocar (llamar) la función, no teniendo que reescribir el código de nuevo. La declaración de funciones en ensamblador, no existe, es simplemente una dirección de memoria de programa, que coincide con a la primera instrucción que componen el grupo de instrucciones. Para simplificar este cálculo de la primera instrucción, generalmente se identifica con una etiqueta para que el cálculo y la memorización de la funciona sea más simple. Esta etiqueta representa el nombre de la rutina. 6
7 Llamada a una función La llamada a una función, desde el punto de vista del microprocesador, es solo un salto (incondicional) a un punto del código. Por tanto, se podría implementar con instrucciones tipo JMP. Pero entonces, cómo se podría gestionar el regreso al punto de llamada? Hay que tener en cuenta que una misma función puede ser llamada desde varios puntos de código, por lo que saber desde el punto que ha sido llamada, para luego continuar desde ahí, se convierte en un problema. Una posible solución, es almacenar el punto de llamada de alguna manera (se recuerda que el punto desde el que se llama una función es el valor del registro PC antes del salto), por ejemplo en un registro, luego, consultando ese punto valor almacenado, se puede saber cuál es el punto de retorno. El problema, es que una función puede ser invocada desde otra función, con lo que ya hay que recordar dos puntos de retorno ( dos registros?). La solución a esto es la pila de datos. De manera que ya no solo se puede almacenar todos los que se necesiten (mientras se tenga memoria libre), sino que además se tienen organizados los puntos de retorno del más actual al más antiguo. De manera que se puede deshacer el camino de llamadas a funciones deshaciendo los elementos guardados en la pila. La solución, pasa, porque cada vez que se llama a una rutina, la dirección de memoria del punto de programa en ejecución (dirección de retorno) debe ser almacenado. Recordemos que ese punto de retorno, es el valor del contador de programa justo antes de hacer el salto a la función. La instrucción en ensamblador que hace estas dos tareas es la función call: Almacenar el valor actual del contador de programa. Saltar al inicio de la función. 7
8 Como el almacenamiento del punto de retorno, ya se realiza en memoria, da la posibilidad de manejar una lista ilimitada de llamadas de rutina, incluyendo también la recursividad (llamando a un procedimiento desde si mismo). Memoria Este espacio de memoria, funcionará como una pila (stack en inglés), donde los nuevos datos se amontonan en la cima (push) sobre los datos anteriores, manteniendo el orden de llegada. Al recuperar datos (pop), el primer valor obtenido es el de la parte superior de la pila (cima), que coincide con el último valor en ser almacenado. 8
9 La pila (STACK) Ante todo, dejar claro que la pila es una región normal de la memoria, solo que se puede utilizar de una manera especial. Es la forma de usar esta porción de memoria la que le da sus propiedades, no la construcción física de la misma. La principal característica de la pila, es que tiene dos índices (punteros) que sirven para llevar un control de cómo está siendo utilizada esta pila. Normalmente estos punteros son dos registros especiales: SP Puntero pila = Stack Pointer. Apunta a la cima de la pila, al último elemento almacenado. BP Puntero base = Base Pointer. Apunta al inicio de la pila, al primer elemento guardado. Inicialmente, cuando la pila está vacía, los punteros SP y BP apuntan al mismo sitio, al inicio de la memoria donde comienza la pila. 9
10 Los microcontroladores Atmel(***), no tiene registro BP, por lo que no hay manera de saber ni de controlar cuando la pila está vacía. A medida que se insertan elementos en la pila, se disminuye de valor SP. Sí, se disminuye su valor, ya que la pila se llena desde los valores altos de memoria hacia valores bajos. Es decir, la base de la pila esta en posiciones altas, y a medida que se llena, se van utilizando valores de memoria más cercanas al cero. 10
11 Instrucciones para manejar la pila Para mantener cierto orden y coherencia en la pila, esta no se puede (más bien no se debe) utilizar libremente, ya que, al ser memoria, sí se puede alterar el valor libremente, pero su comportamiento quedaría errático. Ensamblador incorpora dos instrucciones para manejar la pila: PUSH: PUSH Rr ; POP: POP Rd ; Pone el contenido del registro Rr en la pila, y luego decrementa SP en una unidad. Esta instrucción necesita dos ciclos de reloj. Saca un byte de la cima de la pila y lo almacena en registro Rd, a continuación, incrementa SP en una unidad. Dado que Atmel, permite direccionamiento de SRAM de 16 bits, obliga a que el registro PC sea de 16 bits. Por tanto, el almacenamiento del registro PC en la pila, utilizado en las llamadas a las funciones, provoca realmente el almacenamiento de dos valores [SPH:SPL] de 8 bits cada uno. El registro SP (y por consiguiente SPH y SPL), solo se puede acceder a él utilizando la instrucción OUT y no la LD como otros registros genéricos. Aun así, se desaconseja la modificación manual de este registro, las consecuencias son indeterminadas. Ya que Atmel no utiliza un indicador de inicio de pila, (si no se especifica lo contrario), toma la dirección de memoria más alta disponible, como base de la pila, y empieza a llenar a partir de ahí. Esta dirección se define como la RAMEND, que es una constante definida en la especificación del microcontrolador utilizado (m328pdef.inc en nuestro caso) y tiene un valor específico para cada microprocesador. Actualmente, ya no es necesario inicializar la variable SP para que apunte a la posición correcta, pero en algunos compiladores antiguos, esto si lo es, por lo que el código necesario para la inicialización del registro de pila es: 11
12 Así, la distribución de memoria de programa de Atmel, queda como sigue: Las primeras posiciones de la memoria de datos SRAM se asignan a los registrosr0...r31 Luego los puertos I/O Después variables del programa Y, por último, las posiciones finales de SRAM son utilizado por la pila. De esta manera, se maximiza el uso de pila y de datos de programa. A medida que la pila se llena ocupa SRAM, si el tamaño de la pila crece en exceso, podría solaparse con las variables del programa, provocando la sobreescritura con valores aleatorios. Distribución de la memoria de programa de Atmel 12
13 Invocación: Instrucciones CALL Y RCALL La instrucción que permite hacer llamadas a las funciones son: CALL (llamada absoluta) Su formato es CALL n. Almacena la dirección de retorno (PC + 2) en la pila (STACK PC + 2, SP SP-2). carga la dirección absoluta de la rutina en el PC (PC n). Donde 0 < n < 32K. Sólo disponible en algunas CPUs (Central Processing Unit) Atmel (con gran memoria de programa). Es una instrucción grande y lenta (ocupa dos posiciones de memoria de programa, y toma cuatro ciclos de reloj). La dirección de la rutina puede indicarse mediante una etiqueta en el código. RCALL (Relative CALL) Su formato es RCALL r Almacena la dirección de retorno (PC + 1) en la Pila (STACK PC + 1, SP SP-2). Incrementa el valor de PC en r (PC PC + r + 1). Donde r puede ser la distancia positiva o negativa a la dirección de la rutina, -2K <r <2K. Aumenta o disminuye (si r es negativo) el valor de PC con respecto al valor actual. Es por eso que esta llamada es relativa (relativa a la posición actual del programa). La instrucción es más corta y más rápida que CALL, ocupa una posición de memoria y necesita tres ciclos de reloj para ejecutarse. La distancia a la dirección de la rutina puede indicarse mediante una etiqueta en el código. 13
14 Retorno de funciones: instrucción RET (RETorno de la rutina) Su formato es: RET Extrae los 2 bytes de la cima de la pila y los carga en el contador de programa, PC STACK (2 bytes). Incrementa el valor de SP en dos unidades, SP SP + 2. Esta instrucción permite la vuelta al punto de llamada desde una función mediante la recuperación de la dirección de retorno de la pila, previamente acumulado por una llamada CALL o RCALL. RET siempre utiliza los dos bytes de la cima de la pila como una dirección de retorno. Por lo general, esos 2 bytes, son realmente la dirección de retorno. Pero si la pila se ha utilizado por el programador para cualquier otro propósito (lo cual es muy frecuente, pues su uso está muy estandarizado para otras funcionalidades), los valores más altos de la pila podrían ser otros valores en lugar de la dirección de retorno correcta, lo que origina que RET vuelva a una dirección incorrecta, provocando un comportamiento aleatorio en el programa. 14
15 Uso de registros en funciones Como ya se ha repetido varias veces, un registro debe ser autónomo, es decir, no debe necesitar nada de fuera del entorno de la propia función. Si este necesita información del exterior, esta información debe ser suministrada en el momento de llamar a la función. Este tipo de interacción incorrecta se realiza normalmente a través de variables globales, que como ya se conoce, su uso esta (casi) prohibido por los problemas que trae un uso indebido de ellas. Pero como sabemos, la mayor parte de las instrucciones en ensamblador operan sobre registros. Los registros, los podemos ver como variables globales a todo el microprocesador. Y en este caso, su uso no está prohibido, sino que más bien es obligatorio. Lo que conlleva a que una modificación en un registro dentro de una función, puede provocar alteraciones en variables almacenadas ahí por el programa principal. Es decir, es un caso similar al uso de variables globales. El uso de registros dentro en una función, es practica necesaria (es casi imposible programar sin usar los registros) por lo que los efectos colaterales están asegurados. Pero este problema tiene solución: la pila. Si el código de una función necesita utilizar algún registro de propósito general, es probable que este registro ya se utilice en el programa principal, por lo que su valor actual sea importante, por lo que es necesario hacer una copia de seguridad del mismo, para poder restaurarlo cuando se termine de utilizar. Copia de seguridad Si una rutina utiliza un registro, antes de modificar su contenido (por lo general al principio de la función) se debe salvar su contenido almacenándolo en la pila (PUSH). Para luego, justo antes del RET, poder hacer un restaurar (POP) al valor original antes de la llamada a la función. Otro método, menos aconsejable, sería no conservar los valores originales de los registros por la función (para ahorrar tiempo), pero para ello, entonces se debe proporcionar comentarios en una "cabecera" de la rutina que indica que lo que se registró se modificará en la rutina y su valor se perderá. 15
16 16
17 Resumen Las funciones son la manera de agrupar funcionalidades y ayudar a su reutilización, base del paradigma de programación estructurada. Las funciones necesitan el concepto de almacenamiento de información (TAD = Tipo Abstracto de Datos) Pila. Que se usará para almacenar el punto de llamada y por consiguiente saber cuál es el punto de retorno una vez ejecutada la función. La Pila, además se usará para hacer copia de seguridad de los registros modificados por una función, lo que la hará totalmente independiente del programa principal e inocua para él, al eliminar los efectos colaterales de la modificación de variables globales. Las instrucciones vistas en este tema son: CALL: llama a una función de manera absoluta RCALL: llamada a una función de manera relativa RET: vuelve al punto de llamada a una función en el programa principal PUSH: guarda un byte en la cima de la pila. POP: extrae el byte de la cima de la pila. 17
Tema 3 SUBRUTINAS. Estructura de Computadores OCW_2015 Nekane Azkona Estefanía
Tema 3 SUBRUTINAS ÍNDICE Definición e instrucciones básicas Soporte para el tratamiento de subrutinas (ejecución de la subrutina y gestión del bloque de activación) Interrupciones vs llamadas a procedimiento
Más detallesTema 5: La pila, las macros y los procedimientos
Tema 5: La pila, las macros y los procedimientos S La pila S Las macros S Definición de procedimientos S Tipos de procedimientos: NEAR y FAR S Paso de parámetros a un procedimiento S Mediante registros
Más detallesConstruyendo Programas más Complejos
Arquitectura de Ordenadores Construcciones de Alto Nivel en Ensamblador Abelardo Pardo abel@it.uc3m.es Universidad Carlos III de Madrid Departamento de Ingeniería Telemática Construyendo Programas más
Más detallesTodo programa en 'C' consta de una o más funciones, una de las cuales se llama main.
LENGUAJE C CARACTERISTICAS DEL LENGUAJE 'C' El lenguaje 'C' se conoce como un lenguaje compilado. Existen dos tipos de lenguaje: interpretados y compilados. Los interpretados son aquellos que necesitan
Más detallesEstructura de Microprocesadores. Profesor Ing. Johan Carvajal Godínez
Estructura de Microprocesadores PIC 18F4550 Administración de la memoria Profesor Ing. Johan Carvajal Godínez Contenidos Organización de la memoria del MCU Administración de la memoria de programa (Flash)
Más detallesTema 6 Organización y gestión de la memoria
Departamento de Tecnologías de la Información Tema 6 Organización y gestión de la memoria Ciencias de la Computación e Inteligencia Artificial Índice 6.1 Organización de la memoria en tiempo de ejecución
Más detallesSistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria
1.2. Jerarquía de niveles de un computador Qué es un computador? Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria Es un sistema tan complejo
Más detalles8.4. El software en los μprocesadores
8.4. El software en los μprocesadores Ejemplo de comandos de la CPU: Tarea: Sumar dos números A y B. Suponer los datos A y B almacenados en las posiciones 1000 2 y 1010 2 respectivamente. El resultado
Más detallesFuncionamiento de la Pila (o stack)
Funcionamiento de la Pila (o stack) Todo μp cuenta con una memoria de almacenamiento temporal denominada Pila Es una estructura de datos de tipo secuencial (LIFO) Existen dos operaciones básicas posibles:
Más detallesESCUELA DE INFORMÁTICA
TÉCNICO EN SISTEMAS LABORAL SUBMODULO TEMA 1 (Visual Basic for Application) Microsoft VBA (Visual Basic for Applications) es el lenguaje de macros de Microsoft Visual Basic que se utiliza para programar
Más detallesTEMA 3: El proceso de compilación, del código fuente al código máquina
TEMA 3: El proceso de compilación, del código fuente al código máquina 3.1 Fase de compilación y linkado (link, montado o enlace) Un programa escrito en un lenguaje de alto nivel, no puede ser ejecutado
Más detallesTécnicas de Programación
Técnicas de Programación 2.1.- Introducción: unos conceptos previos y primeros conceptos de la API Introducción La resolución de un problema con medios informáticos implica generalmente la siguiente secuencia
Más detallesFUNCIONES PHP: DECLARACIÓN Y LLAMADAS. PARÁMETROS, RETURN. EJERCICIOS EJEMPLOS RESUELTOS. (CU00827B)
APRENDERAPROGRAMARCOM FUNCIONES PHP: DECLARACIÓN Y LLAMADAS PARÁMETROS, RETURN EJERCICIOS EJEMPLOS RESUELTOS (CU00827B) Sección: Cursos Categoría: Tutorial básico del programador web: PHP desde cero Fecha
Más detallesSISTEMAS OPERATIVOS Arquitectura de computadores
SISTEMAS OPERATIVOS Arquitectura de computadores Erwin Meza Vega emezav@unicauca.edu.co Esta presentación tiene por objetivo mostrar los conceptos generales de la arquitectura de los computadores, necesarios
Más detallesComparaciones en lenguaje ensamblador
Comparaciones en lenguaje ensamblador Objetivo: Entender cómo se realizan las comparaciones de datos en lenguaje ensamblador En lenguaje ensamblador no existe la instrucción IF como se trabaja en otros
Más detallesINFORMÁTICA Y COMUNICACIONES
441 INFORMÁTICA Y COMUNICACIONES Microsoft Access 2003 (Completo) DESCRIPCIÓN Microsoft Access 2003 (Completo) Descripción del funcionamiento del programa de gestión de bases de datos Microsoft Access
Más detallesProgramación Estructurada
Programación Estructurada PROGRAMACIÓN ESTRUCTURADA 1 Sesión No. 7 Nombre: Estructuras de datos Contextualización Cuando un programa suele ser muy extenso, un problema clásico de los programadores es la
Más detallesConceptos de Arquitectura de Computadoras Curso 2015
PRACTICA 1 Assembly, Instrucciones, Programas, Subrutinas y Simulador MSX88 Objetivos: que el alumno Domine las instrucciones básicas del lenguaje assembly del MSX88. Utilice los diferentes modos de direccionamiento.
Más detallesObjetivos. Objetivos. Arquitectura de Computadores. R.Mitnik
Objetivos Objetivos Arquitecturas von Neumann Otras Unidad Central de Procesamiento (CPU) Responsabilidades Requisitos Partes de una CPU ALU Control & Decode Registros Electrónica y buses 2 Índice Capítulo
Más detallesElementos de un programa en C
Elementos de un programa en C Un programa en C consta de uno o más archivos. Un archivo es traducido en diferentes fases. La primera fase es el preprocesado, que realiza la inclusión de archivos y la sustitución
Más detallesTema: Clases y Objetos en C#. Parte II.
Programación II. Guía No. 5 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Clases y Objetos en C#. Parte II. Objetivos Implementar clases, objetos, propiedades, métodos y
Más detallesTema 8 Gestión de la memoria en tiempo de ejecución.
Traductores, Compiladores e Intérpretes 1 Tema 8 Gestión de la memoria en tiempo de ejecución. S Organización de la memoria en tiempo de ejecución. Cuando un programa se ejecuta sobre un sistema operativo
Más detallesEnsamblador. Introducción. Dpto. Física y Arquitectura de Computadores. Universidad Miguel Hernandez
Dpto. Física y Arquitectura de Computadores Universidad Miguel Hernandez Es el lenguaje de más bajo nivel que admite una máquina. El ensamblador hace que el código binario(máquina sea transparente al usuario)
Más detallesTema 2 Introducción a la Programación en C.
Tema 2 Introducción a la Programación en C. Contenidos 1. Conceptos Básicos 1.1 Definiciones. 1.2 El Proceso de Desarrollo de Software. 2. Lenguajes de Programación. 2.1 Definición y Tipos de Lenguajes
Más detallesSeleccione en el escritorio el programa Sucosoft S40 y darle doble click.
Programación y manejo de Sucosoft S40: Cómo Programar? Seleccione en el escritorio el programa Sucosoft S40 y darle doble click. Aparece una ventana denominada administrador Sucosoft en la cual se encuentra
Más detallesADMINISTRACION DE LA MEMORIA. En memoria 1 solo proceso Desventajas:
ADMINISTRACION DE LA MEMORIA Función del Administrador de Memoria Registra qué parte de memoria está libre y ocupada Asigna y libera espacio en memoria a los procesos Administra el intercambio entre la
Más detallesUNIDAD 1: CONCEPTOS BA SICOS DE BASE DE DATOS
UNIDAD 1: CONCEPTOS BA SICOS DE BASE DE DATOS [Escriba el subtítulo del documento] Qué es un gestor de base de datos? Un gestor de base de datos o sistema de gestión de base de datos (SGBD o DBMS) es un
Más detallesLas optimizaciones pueden realizarse de diferentes formas. Las optimizaciones se realizan en base al alcance ofrecido por el compilador.
Unidad III: Optimización Las optimizaciones pueden realizarse de diferentes formas. Las optimizaciones se realizan en base al alcance ofrecido por el compilador. La optimización va a depender del lenguaje
Más detallesProgramación. Práctica Final
Programación Autores: M. Paz Sesmero Lorente Paula de Toledo Heras Fco. Javier Ordoñez Morales Juan Gómez Romero Jose A. Iglesias Martínez Jose Luis Mira 1 1. Introducción. El objetivo de esta práctica
Más detallesMétodos que devuelven valor Dado el siguiente triángulo rectángulo:
Métodos que devuelven valor Dado el siguiente triángulo rectángulo: hipotenusa altura base Para dibujar este triángulo necesitamos los siguientes datos: base y altura La base y la altura, se utilizarán
Más detallesCiclos de máquina. Otro ejemplo: decremento de un registro par (donde rp = HL, DE, BC, SP) DCX rp
Ciclos de máquina Otro ejemplo: decremento de un registro par (donde rp = HL, DE, BC, SP) DCX rp Acceso a periféricos: función del pin IO/M Este μp cuenta con dos instrucciones específicas para I/O, llamadas
Más detallesGuía práctica de estudio 03: Algoritmos
Guía práctica de estudio 03: Algoritmos Elaborado por: M.C. Edgar E. García Cano Ing. Jorge A. Solano Gálvez Revisado por: Ing. Laura Sandoval Montaño Guía práctica de estudio 03: Algoritmos Objetivo:
Más detalles3 - Arquitectura interna de un up
cei@upm.es 3 - Arquitectura interna un up Componentes básicos Lenguaje ensamblador y código máquina Ciclo básico ejecución una instrucción Algunos ejemplos Universidad Politécnica Madrid Componentes básicos
Más detallesInstrucciones de Control de Flujo y Usos de la Pila
1 Instrucciones de Control de Flujo y Usos de la Pila Objetivos Generales Facultad: Estudios Tecnologicos. Escuela: Electrónica Asignatura: Microprocesadores Analizar la forma en que se ejecutan algunas
Más detallesFuncionamiento del 8086/8088
En este capítulo se ofrece una pequeña descripción del funcionamiento de un 8086/8088. En concreto, se explica cómo está organizada la memoria, como se ejecuta un programa y cómo se manejan las interrupciones.
Más detallesIntroducción a la Computación. Capítulo 10 Repertorio de instrucciones: Características y Funciones
Introducción a la Computación Capítulo 10 Repertorio de instrucciones: Características y Funciones Que es un set de instrucciones? La colección completa de instrucciones que interpreta una CPU Código máquina
Más detallesLenguaje de Programación
Introducción a C/C++() UG Introducción a C/C++() Universidad de Guanajuato Sesión 18 Introducción a C/C++() Qué es un? Un entorno de desarrollo integrado o (acrónimo en inglés de integrated development
Más detallesINTRODUCCIÓN...9 CAPÍTULO 1. ELEMENTOS DE UN PROGRAMA INFORMÁTICO...11
Índice INTRODUCCIÓN...9 CAPÍTULO 1. ELEMENTOS DE UN PROGRAMA INFORMÁTICO...11 1.1 PROGRAMA Y LENGUAJESDE PROGRAMACIÓN...12 1.1.1 EL LENGUAJE JAVA...13 1.1.2 EL JDK...15 1.1.3 LOS PROGRAMAS EN JAVA...16
Más detallesPaso de parámetros y gestión del marco de pila
Paso de parámetros y gestión del marco de pila Estructura de Computadores 1. Introducción En clases previas se ha presentado el modelo de programación del 88110 y se ha explicado cómo se ubican las distintas
Más detallesUsuario. Programas de Aplicación. Sistema Operativo. Hardware. Figura 1. Sistema de cómputo estructurado por capas.
Generalidades acerca de los sistemas operativos Hoy en día muchas personas, usan las computadoras de una forma muy fácil, muchos incluso creen que la máquina tiene incorporada todas las potencialidades
Más detallesCICLOS DEL PROCESADOR
UNIDAD DE CONTROL CICLOS DEL PROCESADOR Qué es un ciclo de búsqueda? Para qué sirve estudiar los ciclos de instrucción de una CPU? Para comprender el funcionamiento de la ejecución de instrucciones del
Más detallesPROGRAMACIÓN. UNIDAD II. ALGORITMO PROFA : HAU MOY
PROGRAMACIÓN. UNIDAD II. ALGORITMO PROFA : HAU MOY ALGORITMO DEFINICIÓN: CONSISTE EN LA DESCRIPCIÓN CLARA Y DETALLADA DEL PROCEDIMIENTO A SEGUIR PARA ALCANZAR LA SOLUCIÓN A UN PROBLEMA EN DONDE SE ESTABLECE
Más detallesProgramación. Test Autoevaluación Tema 3
Programación Test Autoevaluación Tema 3 Autores: M. Paz Sesmero Lorente Paula de Toledo Heras Fco. Javier Ordoñez Morales Juan Gómez Romero José A. Iglesias Martínez José Luis Mira Peidro SOLUCIONES 1.
Más detallesINGENIERÍA DEL SOFTWARE
INGENIERÍA DEL SOFTWARE Sesión No. 11 INGENIERÍA DEL SOFTWARE 1 Nombre: Estereotipos y valores etiquetados de los paquetes Contextualización Los estereotipos dentro de los medios de programación son más
Más detallesCPU MEMORIAS CACHE. Memorias caché. Memoria caché = memoria de tamaño pequeño y acceso rápido situada entre la CPU y la memoria principal.
MEMORIAS CACHE Memoria caché = memoria de tamaño pequeño y acceso rápido situada entre la CPU y la memoria principal. Tiempo ciclo memoria > tiempo de ciclo del procesador la CPU debe esperar a la memoria
Más detallesIntroducción a la Operación de Computadoras Personales
Introducción a la Operación de Computadoras Personales Conceptos básicos de computadoras: Software Dr. Diego García Depto. de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur, Bahía
Más detallesSobre cómo dividir un programa ensamblador x86 (modo Real) en módulos compilables por separado.
Sobre cómo dividir un programa ensamblador x86 (modo Real) en módulos compilables por separado. Fuente de la información de partida para este documento: http://homepage.mac.com/eravila/asmix86.html PRIMERO
Más detallesINDICE Programa Entrada Unidad de control Unidad aritmética y lógica (ALU)
INDICE Capitulo 1. Qué es un computador? 1.1. Introducción 1 1.2. El computador como dispositivo electrónico 2 1.3. Cómo se procesa la información? 3 1.4.Diagrama de bloques de un computador 1.4.1. Información
Más detallesPráctica 3. Paso de parámetros entre subrutinas. 3. Consideraciones sobre el paso de parámetros
Práctica 3. Paso de parámetros entre subrutinas 1. Objetivo de la práctica El objetivo de esta práctica es que el estudiante se familiarice con la programación en ensamblador y el convenio de paso de parámetros
Más detallesEstructuras en LabVIEW.
Estructuras en LabVIEW. Sumario: 1. Ejecución según el flujo de datos. 2. Estructuras básicas disponibles en LabVIEW. a) Estructura Sequence. b) Estructura Case. c) Estructura For Loop. d) Estructura While
Más detallesINGENIERÍA DEL SOFTWARE I Práctica 5 Modelado de Diseño
INGENIERÍA DEL SOFTWARE I Práctica 5 Modelado de Diseño Univ. Cantabria Fac. de Ciencias Patricia López Introducción al Diseño Modelamos la estructura software del sistema (incluida la arquitectura) para
Más detallesPROGRAMACION ORIENTADA A OBJETOS EN C++
PROGRAMACION ORIENTADA A OBJETOS EN C++ 1- INTRODUCCIÓN El lenguaje C++ representa el resultado de los esfuerzos realizados para proporcionar las ventajas de la programación Orientada a Objetos a un lenguaje
Más detallesINTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA
APUNTES DE JAVA FUNCIONAMIENTO DE UN PROGRAMA Assembler Ensamblador Ejecuta Programador Programa fuente BASIC Interprete Ejecuta C, C++, Pascal Compilador Compila Ejecuta Programa fuente Programa Objeto
Más detallesBASE DE DATOS. Qué es una base de datos?
1 BASE DE DATOS Qué es una base de datos? Una base de datos es una herramienta para recopilar y organizar información. En las bases de datos, se puede almacenar información sobre personas, productos, pedidos,
Más detallesDefinición de Memoria
Arquitectura de Ordenadores Representación de Datos en Memoria Abelardo Pardo abel@it.uc3m.es Universidad Carlos III de Madrid Departamento de Ingeniería Telemática Definición de Memoria DRM-1 La memoria
Más detallesProgramas Residentes En Lenguaje Ensamblador
UNIVERSIDAD DEL VALLE DE GUATEMALA Facultad de Ingeniería Programas Residentes En Lenguaje Ensamblador Trabajo de investigación presentado por Hugo Chinchilla Luis Monteros Josué Rendón Estrada i INDICE
Más detallesGestión de la memoria en tiempo de ejecución
Apéndice A Gestión de la memoria en tiempo de ejecución A1. Organización de la memoria en tiempo de ejecución Las técnicas de gestión de la memoria durante la ejecución del programa difieren de unos lenguajes
Más detallesLenguaje binario. Código ASCII. Medidas de la información
Hardware y Software (1/5) Lenguaje binario Los ordenadores sólo entienden 1 y 0. Lógica positiva: 0: no hay señal 1: hay señal Código ASCII Medidas de la información Unidad mínima de información: BIT (0
Más detallesDiseño Estructurado de Algoritmos
Diseño Estructurado de Algoritmos 1 Sesión No. 11 Nombre: Estructuras algorítmicas. Tercera parte. Objetivo de la sesión: Al concluir la sesión el estudiante aplicará las estructuras algorítmicas repetitivas
Más detallesAPLICACIÓN RESERVA DE ESPACIOS
APLICACIÓN RESERVA DE ESPACIOS 1. INTRODUCCIÓN...4 2. DESCRIPCIÓN GENERAL...4 2.1. Desarrollo...4 3. Reserva de Espacios...5 3.1. Gestión de usuarios...5 3.2. Gestión de Entidades...6 3.3. Gestión de
Más detallesEjercicios ejemplo: verificación de algoritmos del valor suma de una sucesión matemática. (CU00238A)
aprenderaprogramar.com Ejercicios ejemplo: verificación de algoritmos del valor suma de una sucesión matemática. (CU00238A) Sección: Cursos Categoría: Curso Bases de la programación Nivel II Fecha revisión:
Más detallesEL ORDENADOR A. PERIFÉRICOS. B. UNIDAD CENTRAL. 1. HARDWARE Y SOFTWARE. 2. FUNCIONAMIENTO DE UN SISTEMA INFORMÁTICO 3. CONCEPTO DE SISTEMA INFORMÁTICO
EL ORDENADOR 1. HARDWARE Y SOFTWARE. 2. FUNCIONAMIENTO DE UN SISTEMA INFORMÁTICO 3. CONCEPTO DE SISTEMA INFORMÁTICO 4. PARTES DE UN SISTEMA INFORMÁTICO A. PERIFÉRICOS. B. UNIDAD CENTRAL. a) CARCASA b)
Más detalles20483 Programación en C#
20483B 20483 Programación en C# Fabricante: Microsoft Grupo: Desarrollo Subgrupo: Microsoft Visual Studio 2012 Formación: Presencial Horas: 25 Introducción Este curso enseña a los desarrolladores las habilidades
Más detallesDesde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.
Tipos de Datos Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial. Entrada de datos Procesamientos de datos Salida de resultados Los
Más detalles1
Curso: BORLAN DELPHI 5 Curso de desarrollo de aplicaciones Windows utilizando el entorno de programación Borland Delphi 5. Se estudian las particularidades del lenguaje Delphi, así como su sintaxis; sus
Más detallesArquitectura de Computadores II 8086 Parte II
8086 Parte II Facultad de Ingeniería Universidad de la República Instituto de Computación Contenido Funciones recursivas Manejadores de dispositivos Rutinas recursivas(1/10) Introducción Salvar contexto.
Más detallesMétodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo
TEMA 2: CONCEPTOS BÁSICOS DE ALGORÍTMICA 1. Definición de Algoritmo 1.1. Propiedades de los Algoritmos 2. Qué es un Programa? 2.1. Cómo se construye un Programa 3. Definición y uso de herramientas para
Más detallesUnidad I: Organización del Computador. Ing. Marglorie Colina
Unidad I: Organización del Computador Ing. Marglorie Colina Arquitectura del Computador Atributos de un sistema que son visibles a un programador (Conjunto de Instrucciones, Cantidad de bits para representar
Más detallesTema: Microprocesadores
Universidad Nacional de Ingeniería Arquitectura de Maquinas I Unidad I: Introducción a los Microprocesadores y Microcontroladores. Tema: Microprocesadores Arq. de Computadora I Ing. Carlos Ortega H. 1
Más detallesDiseño de compiladores. Organización de memoria. Organización de memoria. Organización de memoria. Zona de código 04/05/2014 ORGANIZACIÓN DE MEMORIA
Diseño de compiladores Gestión de la memoria / Generación de código ORGANIZACIÓN DE MEMORIA Organización de memoria Depende del tipo de lenguaje (declarativos, imperativos), del compilador y del sistema
Más detallesTutoría 2. Banco de memoria de 8 y 16 bits (8086)
Tutoría 2. Banco de memoria de 8 y 16 bits (8086) RESUMEN Cuando el procesador opera en modo mínimo, éste genera las señales de control para la memoria y los dispositivos de E/S. [1, pág. 292]. Para utilizar
Más detallesCAPÍTULO V SISTEMA PROPUESTO PARA LA DETERMINACIÓN DEL TIPO DE ELECTRODO A UTILIZAR Y PARA EL CÁLCULO DE LOS COSTOS DE SOLDADURA AL ARCO
171 CAPÍTULO V SISTEMA PROPUESTO PARA LA DETERMINACIÓN DEL TIPO DE ELECTRODO A UTILIZAR Y PARA EL CÁLCULO DE LOS COSTOS DE SOLDADURA AL ARCO 5.1.- OBJETIVOS 1.- Facilitar el trabajo a las personas encargadas
Más detallesSistemas Operativos. Curso 2016 Sistema de Archivos
Sistemas Operativos Curso 2016 Sistema de Archivos Agenda Interfaz. Archivos. Directorios. Seguridad en archivos. Implementación. Definiciones. Sistema de archivos virtual. Estructura de los directorios.
Más detallesCUADRO DE MANDO PARA LA ALTA DIRECCIÓN EN EL MINISTERIO DE FOMENTO
CUADRO DE MANDO PARA LA ALTA DIRECCIÓN EN EL MINISTERIO DE FOMENTO Jefe de Proyecto BGS Online Consultores Subdirector General de Tecnología y Sistemas de la Información Ministerio de Fomento Asesor Área
Más detallesITT-327-T Microprocesadores
ITT-327-T Microprocesadores Temporizador Programable (PIT) 8254. Temporizador/Contador Programable (PIT) 8254. Es un contador/temporizador programable diseñado para trabajar con los sistemas de microcomputadores.
Más detallesTema 5. Estructura de datos Pila
Tema 5. Estructura de datos Pila http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz {badia, bmartine, morales, sanchiz}@icc.uji.es Estructuras de datos y de la
Más detallesENSAMBLADOR DE ARCHIVO TASM MASM NASM GAS. Características de un Ensamblador de Archivo
ENSAMBLADOR DE ARCHIVO TASM MASM NASM GAS Características de un Ensamblador de Archivo Traduce de Leng Ensamblador a Lenguaje máquina Permite definición de etiquetas Reserva memoria para variables octales
Más detallesRequerimientos de Software
Requerimientos de Software Ingeniería de Requerimientos Se define como el proceso de establecer los servicios que el consumidor requiere de un sistema y las restricciones sobre las cuales de funcionar
Más detallesGuía práctica de estudio 05: Diagramas de flujo
Guía práctica de estudio 05: Diagramas de flujo Elaborado por: M.C. Edgar E. García Cano Ing. Jorge A. Solano Gálvez Revisado por: Ing. Laura Sandoval Montaño Guía práctica de estudio 05: Diagramas de
Más detallesLa forma más rápida de configurar la cámara
La forma más rápida de configurar la cámara Siempre que se desea empezar a utilizar una cámara es necesario configurarla previamente. Con la interfaz de programación de IDS Software Suite tendrá el control
Más detallesSESION 12 LA DISTRIBUCIÓN BINOMIAL
SESION LA DISTRIBUCIÓN BINOMIAL I. CONTENIDOS:. La distribución omial.. Variables aleatorias en una distribución omial. 3. Descripciones de la distribución omial. 4. Distribución de Poisson. II. OBJETIVOS:
Más detallesAspectos Básicos de Networking
Aspectos Básicos de Networking ASPECTOS BÁSICOS DE NETWORKING 1 Sesión No. 4 Nombre: Capa de transporte del modelo OSI Contextualización Existen diferencias en los servicios de protocolos? Los protocolos
Más detallesGuía práctica de estudio 03: Algoritmos
Guía práctica de estudio 03: Algoritmos Elaborado por: M.C. Edgar E. García Cano Ing. Jorge A. Solano Gálvez Revisado por: Ing. Laura Sandoval Montaño Guía práctica de estudio 03: Algoritmos Objetivo:
Más detallesLa última versión disponible cuando se redactó este manual era la 5 Beta (versión ), y sobre ella versa este manual.
Manual de Dev-C++ 4.9.9.2 Página 1 de 11 Introducción Dev-C++ es un IDE (entorno de desarrollo integrado) que facilita herramientas para la creación y depuración de programas en C y en C++. Además, la
Más detalles2. Codificar de forma sistemática la secuencia de instrucciones en un lenguaje.
Modulo 1. Introducción a los lenguajes de programación La solución de problemas mediante en uso de un computador nos lleva a desarrollar programas o aplicaciones, la construcción de estos programas debe
Más detallesJava Avanzado Facultad de Ingeniería. Escuela de computación.
2 Java Avanzado Facultad de Ingeniería. Escuela de computación. Java Avanzado. Guía 5 3 Introducción Este manual ha sido elaborado para orientar al estudiante de Java Avanzado en el desarrollo de sus prácticas
Más detallesTEMA 1: Concepto de ordenador
TEMA 1: Concepto de ordenador 1.1 Introducción Los ordenadores necesitan para su funcionamiento programas. Sin un programa un ordenador es completamente inútil. Para escribir estos programas necesitamos
Más detallesAlgoritmos. Medios de expresión de un algoritmo. Diagrama de flujo
Algoritmos En general, no hay una definición formal de algoritmo. Muchos autores los señalan como listas de instrucciones para resolver un problema abstracto, es decir, que un número finito de pasos convierten
Más detallesUNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS Facultad de Ingeniería Departamento de Ing. Eléctrica Electrónica II
INTEGRADOR, DERIVADOR Y RECTIFICADOR DE ONDA CON AMPLIFICADORES OPERACIONALES LAURA MAYERLY ÁLVAREZ JIMENEZ (20112007040) MARÍA ALEJANDRA MEDINA OSPINA (20112007050) RESUMEN En esta práctica de laboratorio
Más detallesDesarrollar un programa en SIMATIC S7 con codificación AWL que simule un sistema en el que una entrada digital active una salida digital.
Ejercicio 1 Desarrollar un programa en SIMATIC S7 con codificación AWL que simule un sistema en el que una entrada digital active una salida digital. Es recomendable que en este programa ya se comience
Más detalles3.1. Administración de la medición y de la información estratégica:
Unidad III Aspectos Generales Sobre la Gestión de la Calidad 3.1. Administración de la medición y de la información estratégica: Los siguientes criterios corresponden a la administración de la medición
Más detallesLA ESTRUCTURA DE DATOS PILA EN JAVA. CLASE STACK DEL API JAVA. EJEMPLO Y EJERCICIOS RESUELTOS. (CU00923C)
APRENDERAPROGRAMAR.COM LA ESTRUCTURA DE DATOS PILA EN JAVA. CLASE STACK DEL API JAVA. EJEMPLO Y EJERCICIOS RESUELTOS. (CU00923C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado
Más detalles3. ANÁLISIS DE DATOS DE PRECIPITACIÓN.
3. ANÁLISIS DE DATOS DE PRECIPITACIÓN. Teniendo en cuenta que la mayoría de procesos estadísticos se comportan de forma totalmente aleatoria, es decir, un evento dado no está influenciado por los demás,
Más detallesDiseño arquitectónico 1ª edición (2002)
Unidades temáticas de Ingeniería del Software Diseño arquitectónico 1ª edición (2002) Facultad de Informática objetivo Los sistemas grandes se descomponen en subsistemas que suministran un conjunto relacionado
Más detallesEl Diseño de un Lenguaje Máquina
Arquitectura de Ordenadores Juego de Instrucciones del Procesador Intel Pentium Abelardo Pardo abel@it.uc3m.es Universidad Carlos III de Madrid Departamento de Ingeniería Telemática El Diseño de un Lenguaje
Más detallesMicrosoft Project 2013
Microsoft Project 2013 SALOMÓN CCANCE Project 2013 Salomón Ccance www.ccance.net CCANCE WEBSITE ANEXO 2. MANEJO DE VISTAS Y TABLAS. 2.1. ELEMENTOS DE VISUALIZACIÓN DE MICROSOFT OFFICE PROJECT PROFESSIONAL
Más detallesISO SERIE MANUALES DE CALIDAD GUIAS DE IMPLEMENTACION. ISO 9001:2008 Como implementar los cambios parte 1 de 6
ISO 9001 2008 GUIAS DE IMPLEMENTACION ISO 9001:2008 Como implementar los cambios parte 1 de 6 SERIE MANUALES DE CALIDAD 1 NORMA INTERNACIONAL ISO 9000 Dentro de las modificaciones de la nueva versión de
Más detallesBitbloq 2: Entorno de programación
1.1.5. Bitbloq 2: Entorno de programación Bitbloq 1 es una herramienta online que permite crear programas para un microcontrolador y cargarlos en el mismo de forma sencilla y sin tener necesariamente conocimientos
Más detallesAUTOMATIZACIÓN DE TAREAS REPETITIVAS MEDIANTE GRABACIÓN DE MACROS
UNIDAD DIDÁCTICA AUTOMATIZACIÓN DE TAREAS REPETITIVAS MEDIANTE GRABACIÓN DE MACROS Los objetivos de este tema son: 1. Entender la utilidad de una macro en Word y aprender a grabarla. 2. Conocer la utilización
Más detallesfundamentos de programación (unidad 4) programación estructurada en Java
fundamentos de programación (unidad 4) programación estructurada en Java Para ver una copia completa de la licencia, acudir a la dirección http://creativecommons.org/licenses/by-nc-sa/2.5/es/legalcode.es
Más detalles