Instrucciones de control de flujo
|
|
|
- Marina Ángeles Martínez Soriano
- hace 9 años
- Vistas:
Transcripción
1 C a p í t u l o 3 Instrucciones de control de flujo Índice 3.1. El registro CCR Saltos incondicionales y condicionales Estructuras de control condicionales Estructuras de control repetitivas Problemas del capítulo La mayor parte de los programas mostrados en los capítulos anteriores constaban de una serie de instrucciones que se debían ejecutar una tras otra, siguiendo el orden en el que se habían escrito, hasta que el programa finalizaba. Este tipo de ejecución, en el que las instrucciones se ejecutan una tras otra, siguiendo el orden en el que están en memoria, recibe el nombre de ejecución secuencial. La ejecución secuencial presenta bastantes limitaciones. Un programa de ejecución secuencial no puede, por ejemplo, tomar diferentes acciones en función de los datos de entrada, o de los resultados obtenidos, o de la interacción con el usuario. Tampoco puede repetir un número de veces ciertas operaciones, a no ser que el programador haya repetido varias veces las mismas operaciones en el programa. Pero incluso en ese Este capítulo forma parte del libro «Introducción a la arquitectura de computadores con Qt ARMSim y Arduino». Copyright c 2014 Sergio Barrachina Mir, Maribel Castillo Catalán, Germán Fabregat Llueca, Juan Carlos Fernández Fernández, Germán León Navarro, José Vicente Martí Avilés, Rafael Mayo Gual y Raúl Montoliu Colás. Se publica bajo la licencia «Creative Commons Atribución-CompartirIgual 4.0 Internacional». 55
2 3.1. El registro CCR 56 caso, el programa sería incapaz de variar el número de veces que dichas instrucciones deberían ejecutarse. Debido a la gran ventaja que supone el que un programa pueda tomar diferentes acciones y que pueda repetir un conjunto de instrucciones un determinado número de veces, los lenguajes de programación proporcionan estructuras de control que permiten llevar a cabo dichas acciones: las estructuras de control condicionales y repetitivas. Estas estructuras de control permiten modificar el flujo secuencial de instrucciones. En particular, las estructuras de control condicionales permiten la ejecución de ciertas partes del código en función de una serie de condiciones, mientras que las estructuras de control repetitivas permiten la repetición de cierta parte del código hasta que se cumpla una determinada condición de parada. Este capítulo está organizado como sigue. El Apartado 3.1 describe el registro CCR de ARM, ya que todas las instrucciones de control de flujo condicional de ARM utilizan el contenido de dicho registro para determinar qué acción tomar. El Apartado 3.2 muestra qué son y para qué se utilizan los saltos incondicionales y condicionales. El Apartado 3.3 describe las estructuras de control condicionales if-then e if-then-else. El Apartado 3.4 presenta las estructuras de control repetitivas while y for. El último apartado propone una serie de ejercicios más avanzados relacionados con el contenido de este capítulo. Para complementar la información mostrada en este capítulo y obtener otro punto de vista sobre este tema, se puede consultar el Apartado 3.6 «ARM s Flow Control Instructions» del libro «Computer Organization and Architecture: Themes and Variations» de Alan Clements. Conviene tener en cuenta que en dicho apartado se utiliza el juego de instrucciones ARM de 32 bits y la sintaxis del compilador de ARM, mientras que en este libro se describe el juego de instrucciones Thumb de ARM y la sintaxis del compilador GCC El registro CCR Antes de ver cómo se implementan las estructuras de control condicionales y repetitivas, es necesario explicar que cada vez que se ejecuta una instrucción aritmética, se actualiza el Condition Code Register 1 (CCR). Por ejemplo, al ejecutar una instrucción de suma «add», se actualiza el indicador de acarreo C (que se corresponde con un bit concreto del 1 Los distintos fabricantes de computadores llaman de forma distinta al registro en el que se almacena el estado del computador después de la ejecución de una operación. Por ejemplo, ARM llama a este registro Current Processor Status Register (CPSR), mientras que Intel lo denomina Status Register (SR). Nosotros seguiremos la notación utilizada en [Cle14], que llama a este registro Condition Code Register (CCR).
3 3.1. El registro CCR 57 registro CCR). Así mismo, al ejecutar la instrucción «cmp», que compara dos registros, se actualiza, entre otros, el indicador de cero Z (que se corresponde con otro de los bits del registro CCR). Los valores de los indicadores (flags, en inglés) del registro CCR son usados por las instrucciones de salto para decidir qué camino debe tomar el programa. Los cuatro indicadores del registro CCR que se utilizan por las instrucciones de control de flujo son: N: Se activa 2 cuando el resultado de la operación es negativo (el 0 se considera positivo). Z: Se activa cuando el resultado de la operación es 0. C: Se activa cuando el resultado de la operación produce un acarreo (llamado carry en inglés). V: Se activa cuando el resultado de la operación produce un desbordamiento en operaciones con signo (overflow). La instrucción «cmp r1, r2» actualiza el registro CCR en función de los valores almacenados en los registros r1 y r2. Para ello, y como se ha visto en el capítulo anterior, realiza la resta r1 r2 y, dependiendo del resultado obtenido, activa o no los distintos indicadores. Por ejemplo, si suponemos que los registros r1, r2 y r3 contienen los valores 5, 3 y 5, respectivamente, entonces: Tras la operación «cmp r1, r2», el indicador N no se activará puesto que el resultado de la comparación no es negativo (r1 r2 es un número positivo). El indicador Z tampoco se activará puesto que los registros contienen valores diferentes (r1 r2 es distinto de cero). Tras la operación «cmp r2, r1», el indicador N se activará puesto que el resultado de la comparación produce un número negativo (r2 r1 es un número negativo). El indicador Z no se activará puesto que los registros contienen valores diferentes. Tras la operación «cmp r1, r3», el indicador N no se activará puesto que el resultado de la comparación no es negativo (el cero se considera positivo). El indicador Z si se activará puesto que los registros contienen valores iguales (r1 r3 es igual a cero). 2 Como ya se sabe, un bit puede tomar uno de dos valores: 0 o 1. Cuando decimos que un bit está activado (set), nos referimos a que dicho bit tiene el valor 1. Cuando decimos que un bit está desactivado (clear), nos referimos a que dicho bit tiene el valor 0. Además, cuando decimos que un bit se activa (se pone a 1) bajo determinadas circunstancias, se sobreentiende que si no se dan dichas circunstancias, dicho bit se desactiva (se pone a 0). Lo mismo ocurre, pero al revés, cuando decimos que un bit se desactiva bajo determinadas circunstancias.
4 3.1. El registro CCR 58 Los indicadores del registro CCR se muestran en Qt ARMSim en la esquina inferior derecha de la ventana del simulador. La Figura 3.1 muestra un ejemplo donde el indicador N está activo y los otros tres no. Figura 3.1: Indicadores mostrados por el simulador Qt ARMSim El siguiente programa muestra un ejemplo en el que se modifican los indicadores del registro CCR comparando el contenido de distintos registros. 1.text 2 main: mov r1, #10 3 mov r2, #5 4 mov r3, #10 5 cmp r1, r2 6 cmp r1, r3 7 cmp r2, r3 8 stop: wfi cap3-e0.s Copia y ensambla el programa anterior. A continuación, ejecuta el programa paso a paso conforme vayas respondiendo las siguientes preguntas: 3.1 Carga y ejecuta el programa anterior. Se activa el indicador N tras la ejecución de la instrucción «cmp r1, r2»? y el indicador Z? 3.2 Se activa el indicador N tras la ejecución de la instrucción «cmp r1, r3»? y el indicador Z? 3.3 Se activa el indicador N tras la ejecución de la instrucción «cmp r2, r3»? y el indicador Z?
5 3.2. Saltos incondicionales y condicionales Saltos incondicionales y condicionales En este apartado se describen las instrucciones de salto disponibles en el ensamblador Thumb de ARM. En primer lugar se verá qué son los saltos incondicionales y a continuación, los saltos condicionales Saltos incondicionales Se denominan saltos incondicionales a aquéllos que se realizan siempre, que no dependen de que se cumpla una determinada condición. La instrucción de salto incondicional es «b etiqueta», donde «etiqueta» referencia la línea del programa a la que se quiere saltar. Al tratarse de una instrucción de salto incondicional, cada vez que se ejecuta la instrucción «b etiqueta», el programa saltará a la instrucción etiquetada con «etiqueta», independientemente de qué valor tenga el registro CCR. El siguiente programa muestra un ejemplo de salto incondicional. 1.text 2 main: mov r0, #5 3 mov r1, #10 4 mov r2, #100 5 mov r3, #0 6 b salto 7 add r3, r1, r0 8 salto: add r3, r3, r2 9 stop: wfi cap3-e1.s 3.4 Carga y ejecuta el programa anterior. Qué valor almacena el registro r3 al finalizar el programa? 3.5 Comenta completamente la línea «b salto» (o bórrala) y vuelve a ejecutar el programa. Qué valor almacena ahora el registro r3 al finalizar el programa? 3.6 Qué pasaría si la etiqueta «salto» estuviera situada en la línea «mov r1, #10», es decir, antes de la instrucción «b salto»? 3.7 Crea un nuevo código basado en el código anterior, pero en el que la línea etiquetada con «salto» sea la línea «mov r1,#10». Ejecuta el programa paso a paso y comprueba que lo que ocurre coincide con lo que habías deducido en el ejercicio anterior.
6 3.2. Saltos incondicionales y condicionales Saltos condicionales Las instrucciones de salto condicional tiene la forma «bxx etiqueta», donde «XX» se sustituye por un nemotécnico que indica el tipo de condición que se debe cumplir para realizar el salto y «etiqueta» referencia a la línea del programa a la que se quiere saltar. Las instrucciones de salto condicional comprueban ciertos indicadores del registro CCR para decidir si se debe saltar o no. Por ejemplo, la instrucción «beq etiqueta» (branch if equal) comprueba si el indicador Z está activo. Si está activo, entonces salta a la instrucción etiquetada con «etiqueta». Si no lo está, el programa continúa con la siguiente instrucción. De forma similar, «bne etiqueta» (branch if not equal) saltará a la instrucción etiquetada con «etiqueta» si el indicador Z no está activo, si esta activo, no saltará. El Cuadro 3.1 muestra las distintas instrucciones de salto condicional (en el Cuadro 3.2 de [Cle14] se puede consultar también la codificación en binario asociada a cada instrucción de salto). Instrucción Cuadro 3.1: Instrucciones de salto condicional Condición de salto «beq» (branch if equal) Iguales (Z) «bne» (branch if not equal) No iguales (z) «bcs» (branch if carry set) Mayor o igual sin signo (C) «bcc» (branch if carry clear) Menor sin signo (c) «bmi» (branch if minus) Negativo (N) «bpl» (branch if plus) Positivo o cero (n) «bvs» (branch if overflow set) Desbordamiento (V) «bvc» (branch if overflow clear) No hay desbordamiento (v) «bhi» (branch if higher) Mayor sin signo (Cz) «bls» (branch if lower of same) Menor o igual sin signo (c o Z) «bge» (branch if greater or equal) Mayor o igual (NV o nv) «blt» (branch if less than) Menor que (Nv o nv) «bgt» (branch if greater than) Mayor que (z y (NV o nv)) «ble» (branch if less than or equal) Menor o igual (Nv o nv o Z) El siguiente ejemplo muestra un programa en el que se utiliza la instrucción «beq» para saltar en función del resultado de la operación anterior. 1.text 2 main: mov r0, #5 3 mov r1, #10 4 mov r2, #5 5 mov r3, #0 cap3-e2.s
7 3.2. Saltos incondicionales y condicionales 61 6 cmp r0, r2 7 beq salto 8 add r3, r0, r1 9 salto: add r3, r3, r1 10 stop: wfi 3.8 Carga y ejecuta el programa anterior. Qué valor tiene el registro r3 cuando finaliza el programa? 3.9 En qué estado está el indicador Z tras la ejecución de la instrucción «cmp r0, r2»? Para contestar a esta pregunta deberás recargar la simulación y detener la ejecución justo después de ejecutar dicha instrucción Cambia la línea «cmp r0, r2» por «cmp r0, r1» y vuelve a ejecutar el programa. Qué valor tiene ahora el registro r3 cuando finaliza el programa? 3.11 En qué estado está el indicador Z tras la ejecución de la instrucción «cmp r0, r1»? 3.12 Por qué se produce el salto en el primer caso, «cmp r0, r2», y no en el segundo, «cmp r0, r1»? Veamos ahora el funcionamiento de la instrucción «bne etiqueta». Para ello, se usará el programa anterior (sin la modificación propuesta en los ejercicios anteriores), pero en el que deberás sustituir la instrucción «beq salto» por «bne salto» Carga y ejecuta el programa. Qué valor tiene el registro r3 cuando finaliza el programa? 3.14 En qué estado está el indicador Z tras la ejecución de la instrucción «cmp r0, r2»? 3.15 Cambia la línea «cmp r0, r2» por «cmp r0, r1» y vuelve a ejecutar el programa. Qué valor tiene ahora el registro r3 cuando finaliza el programa? 3.16 En qué estado está el indicador Z tras la ejecución de la instrucción «cmp r0, r1»? 3.17 Por qué no se produce el salto en el primer caso, «cmp r0, r2», y sí en el segundo, «cmp r0, r1»?
8 3.3. Estructuras de control condicionales Estructuras de control condicionales En este apartado se describen las estructuras de control condicionales if-then e if-then-else Estructura condicional if-then La estructura condicional if-then está presente en todos los lenguajes de programación y se usa para realizar o no un conjunto de acciones dependiendo de una condición. A continuación se muestra un programa escrito en Python3 que utiliza la estructura if-then. 1 X = 1 2 Y = 1 3 Z = if (X == Y): 6 Z = X + Y El programa anterior comprueba si el valor de X es igual al valor de Y y en caso de que así sea, suma los dos valores, almacenando el resultado en Z. Si no son iguales, Z permanecerá inalterado. Una posible implementación del programa anterior en ensamblador Thumb de ARM, sería la siguiente: 1.data 2 X:.word 1 3 Y:.word 1 4 Z:.word text 7 main: ldr r0, =X 8 ldr r0, r0 <- [X] 9 ldr r1, =Y 10 ldr r1, r1 <- [Y] cmp r0, r1 13 bne finsi 14 add r2, r0, 15 ldr r3, [Z] <- [X] + [Y] 16 str r2, finsi: wfi cap3-e3.s 3.18 Carga y ejecuta el programa anterior. Qué valor tiene la posición de memoria Z cuando finaliza el programa?
9 3.3. Estructuras de control condicionales Modifica el código para que el valor de Y sea distinto del de X y vuelve a ejecutar el programa. Qué valor hay ahora en la posición de memoria Z cuando finaliza el programa? Como has podido comprobar, la idea fundamental para implementar la instrucción «if x==y:» ha consistido en utilizar una instrucción de salto condicional que salte si no se cumple dicha condición, «bne». De esta forma, si los dos valores comparados son iguales, el programa continuará, ejecutando el bloque de instrucciones que deben ejecutarse solo si «x==y» (una suma en este ejemplo). En caso contrario, se producirá el salto y dicho bloque no se ejecutará Cambia el programa anterior para que realice la suma cuando X sea mayor a Y Estructura condicional if-then-else 1 X = 1 2 Y = 1 3 Z = 0 4 Sea el siguiente programa en Python3: 5 if (X == Y): 6 Z = X + Y 7 else: 8 Z = X + 5 En este caso, si se cumple la condición ( son iguales X y Y?) se realiza una acción, sumar X y Y, y si no son iguales, se realiza otra acción diferente, sumar el número 5 a X. Una posible implementación del programa anterior en ensamblador Thumb de ARM, sería la siguiente: 1.data 2 X:.word 1 3 Y:.word 1 4 Z:.word text 7 main: ldr r0, =X 8 ldr r0, r0 <- [X] 9 ldr r1, =Y 10 ldr r1, r1 <- [Y] cap3-e4.s
10 3.4. Estructuras de control repetitivas cmp r0, r1 13 bne else 14 add r2, r0, r2 <- [X] + [Y] 15 b finsi else: add r2, r0, r2 <- [X] finsi: ldr r3, =Z 20 str r2, [Z] <- r stop: wfi 3.21 Carga y ejecuta el programa anterior. Qué valor hay en la posición de memoria Z cuando finaliza el programa? 3.22 Cambia el valor de Y para que sea distinto de X y vuelve a ejecutar el programa. Qué valor hay ahora la posición de memoria Z al finalizar el programa? 3.23 Supón que el programa anterior en Python3, en lugar de la línea «if X == Y:», tuviera la línea «if X > Y:». Cambia el programa en ensamblador para se tenga en cuenta dicho cambio. Qué modificaciones has realizado en el programa en ensamblador? 3.24 Supón que el programa anterior en Python3, en lugar de la línea «if X == Y:», tuviera la línea «if X <= Y:». Cambia el programa en ensamblador para se tenga en cuenta dicho cambio. Qué modificaciones has realizado en el programa en ensamblador? 3.4. Estructuras de control repetitivas Una vez vistas las estructuras de control condicionales, vamos a ver ahora las estructuras de control repetitivas while y for Estructura de control repetitiva while La estructura de control repetitiva while permite ejecutar repetidamente un bloque de código mientras se siga cumpliendo una determinada condición. La estructura while funciona igual que una estructura if-then, en el sentido de que si se cumple la condición evaluada, se ejecuta el código asociado al cumplimiento de dicha condición. Pero a diferencia de la estructura if-then, una vez se ha ejecutado la última instrucción del
11 3.4. Estructuras de control repetitivas 65 código asociado a la condición, el control vuelve a la evaluación de la condición y todo el proceso se vuelve a repetir. El siguiente programa en Python3 muestra el uso de la estructura de control repetitiva while. 1 X = 1 2 E = 1 3 LIM = while (X<LIM): 6 X = X + 2 * E 7 E = E print(x) El programa anterior realizará las operaciones X = X + 2 E y E = E + 1 mientras se cumpla que X < LIM. Por lo tanto, la variable X irá tomando los siguientes valores con cada iteración del bucle: 3, 7, 13, 21, 31, 43, 57, 73, 91, 111. Una posible implementación del programa anterior en ensamblador Thumb de ARM sería la siguiente: 1.data 2 X:.word 1 3 E:.word 1 4 LIM:.word text 7 main: ldr r0, =X 8 ldr r0, r0 <- X 9 ldr r1, =E 10 ldr r1, r1 <- E 11 ldr r2, =LIM 12 ldr r2, r2 <- LIM bucle: cmp r0, r2 15 bpl finbuc 16 lsl r3, r1, r3 <- 2 * [E] 17 add r0, r0, r0 <- [X] + 2 * [E] 18 add r1, r1, r1 <- [E] ldr r4, =X 20 str r0, [X] <- r0 21 ldr r4, =E 22 str r1, [E] <- r1 23 b bucle finbuc: wfi cap3-e6.s
12 3.4. Estructuras de control repetitivas Qué hacen las instrucciones «cmp r0, r2», «bpl finbuc» y «b bucle»? 3.26 Por qué se ha usado «bpl» y no «bmi»? 3.27 Qué indicador del registro CCR se está comprobando cuando se ejecuta la instrucción «bpl»? Cómo debe estar dicho indicador, activado o desactivado, para que se ejecute el interior del bucle? 3.28 Qué instrucción se ha utilizado para calcular 2 E? Qué hace dicha instrucción? 3.29 En el código mostrado se actualiza el contenido de las variables X y E en cada iteración del bucle. Se te ocurre algún tipo de optimización que haga que dicho bucle se ejecute mucho más rápido? (El resultado final del programa debe ser el mismo.) Estructura de control repetitiva for En muchas ocasiones es necesario repetir un conjunto de acciones un número predeterminado de veces. Esto podría conseguirse utilizando un contador que se fuera incrementando de uno en uno y un bucle while que comprobara que dicho contador no ha alcanzado un determinado valor. Sin embargo, como dicha estructura se da con bastante frecuencia, los lenguajes de programación de alto nivel suelen proporcionar una forma de llevarla a cabo directamente. El siguiente programa muestra un ejemplo de uso de la estructura de control repetitiva for en Python3. 1 V = [2, 4, 6, 8, 10] 2 n = 5 3 suma = for i in range(n): # i = [0..N-1] 6 suma = suma + V[i] El programa anterior suma todos los valores de un vector V y almacena el resultado en la variable suma. Puesto que en dicho programa se sabe el número de iteraciones que debe realizar el bucle (que es igual al número de elementos del vector), la estructura ideal para resolver dicho problema es el bucle for. Se deja como ejercicio para el lector pensar en cómo resolver el mismo problema utilizando la estructura while. Por otro lado, un programa más realista en Python3 no necesitaría la variable n, ya que sería posible obtener la longitud del vector utilizando la función «len(v)». Si se ha utilizado la variable n ha sido para acercar
13 3.4. Estructuras de control repetitivas 67 el problema al caso del ensamblador, en el que sí que se va a tener que recurrir a dicha variable. Una posible implementación del programa anterior en ensamblador Thumb de ARM sería la siguiente: 1.data 2 V:.word 2, 4, 6, 8, 10 3 n:.word 5 4 suma:.word text 7 main: ldr r0, r0 <- dirección de V 8 ldr r1, =n 9 ldr r1, r1 <- n 10 ldr r2, =suma 11 ldr r2, r2 <- suma 12 mov r3, r3 < bucle: cmp r3, r1 15 beq finbuc 16 ldr r4, [r0] 17 add r2, r2, r2 <- r2 + V[i] 18 add r0, r0, #4 19 add r3, r3, #1 20 b bucle finbuc: ldr r0, =suma 23 str r2, [suma] <- r stop: wfi cap3-e5.s Como se puede comprobar en el código anterior, el índice del bucle está almacenado en el registro r3 y la longitud del vector en el registro r1. En cada iteración se comprueba si el índice es igual a la longitud del vector. En caso positivo, se salta al final del bucle y en caso negativo, se realizan las operaciones indicadas en el bucle Para qué se utilizan las siguientes instrucciones: «cmp r3, r1», «beq finbuc», «add r3, r3, #1» y «b bucle»? 3.31 Qué indicador del registro CCR se está comprobando cuando se ejecuta la instrucción «beq finbuc»? 3.32 «ldr r4, [r0]»? Qué contiene el registro r0? Para qué sirve la instrucción 3.33 Para qué sirve la instrucción «add r0, r0, #4»?
14 3.5. Problemas del capítulo Qué valor tiene la posición de memoria «suma» cuando finaliza la ejecución del programa? Y si V = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] y n = 10? 3.5. Problemas del capítulo 3.35 Implementa un programa que dados dos números almacenados en dos posiciones de memoria A y B, almacene el valor absoluto de la resta de ambos en la posición de memoria RES. Es decir, si A es mayor que B deberá realizar la operación A B y almacenar el resultado en RES, y si B es mayor que A, entonces deberá almacenar B A Implementa un programa que dado un vector, calcule el número de elementos de un vector que son menores a un número dado. Por ejemplo, si el vector es [2, 4, 6, 3, 10, 12, 2] y el número es 5, el resultado esperado será 4, puesto que hay 4 elementos del vector menores a Implementa un programa que dada las notas de 2 exámenes parciales almacenadas en memoria (con notas entre 0 y 10), calcule la nota final (sumando las dos notas) y almacene en memoria la cadena de caracteres APROBADO si la nota final es mayor o igual a 10 y SUSPENDIDO si la nota final es inferior a Modifica el programa anterior para que almacene en memoria la cadena de caracteres APROBADO si la nota final es mayor o igual a 10 pero menor a 14, NOTABLE si la nota final es mayor o igual a 14 pero menor a 18 y SOBRESALIENTE si la nota final es igual o superior a Modifica el programa anterior para que si alguna de las notas de los exámenes parciales es inferior a 5, entonces se almacene NOSU- PERA independientemente del valor del resto de exámenes parciales Implementa un programa que dado un vector, sume todos los elementos del mismo mayores a un valor dado. Por ejemplo, si el vector es [2, 4, 6, 3, 10, 1, 4] y el valor 5, el resultado esperado será = Implementa un programa que dado un vector, sume todos los elementos pares. Por ejemplo, si el vector es [2, 7, 6, 3, 10], el resultado esperado será = Implementa un programa que calcule los N primeros números de la sucesión de Fibonacci. La sucesión comienza con los números 1 y 1 y a partir de estos, cada término es la suma de los dos anteriores. Es decir que el tercer elemento de la sucesión es = 2, el cuarto = 3, el quinto = 5 y así sucesivamente. Por ejemplo, los
15 3.5. Problemas del capítulo 69 N = 10 primeros son [1, 1, 2, 3, 5, 8, 13, 21, 34, 55]. Para ello deberás usar una estructura de repetición adecuada y almacenar los valores obtenidos en memoria Modifica el programa anterior para que calcule elementos de la sucesión de Fibonacci hasta que el último elemento calculado sea mayor a un valor concreto.
16 Bibliografía [Adv95] Advanced RISC Machines Ltd (ARM) (1995). ARM 7TDMI Data Sheet. URL [Atm11] Atmel Corporation (2011). ATmega 128: 8-bit Atmel Microcontroller with 128 Kbytes in-system Programmable Flash. URL [Atm12] Atmel Corporation (2012). AT91SAM ARM-based Flash MCU datasheet. URL [Bar14] S. Barrachina Mir, G. León Navarro y J. V. Martí Avilés (2014). Conceptos elementales de computadores. URL de_computadores.pdf [Cle14] [Shi13] A. Clements (2014). Computer Organization and Architecture. Themes and Variations. International edition. Editorial Cengage Learning. ISBN S. Shiva (2013). Computer Organization, Design, and Architecture, Fifth Edition. Taylor & Francis. ISBN URL 208
Instrucciones de procesamiento de datos
C a p í t u l o 2 Instrucciones de procesamiento de datos Índice 2.1. Operaciones aritméticas................ 44 2.2. Operaciones lógicas.................. 50 2.3. Operaciones de desplazamiento............
Modos de direccionamiento y formatos de instrucción
C a p í t u l o 4 Modos de direccionamiento y formatos de instrucción Índice 4.1. Direccionamiento directo a registro......... 73 4.2. Direccionamiento inmediato............. 74 4.3. Direccionamiento relativo
Gestión de subrutinas
C a p í t u l o 6 Gestión de subrutinas Índice 6.1. La pila......................... 104 6.2. Bloque de activación de una subrutina....... 109 6.3. Problemas del capítulo................ 120 Cuando se
TEMA 1. PROGRAMACIÓN DE UN COMPUTADOR
Tema 1. Programación de un computador TEMA 1. CIÓN DE UN COMPUTADOR 1. CONCEPTO DE 2. LENGUAJES DE CIÓN 2.1. LENGUAJE MÁQUINA 2.2. LENGUAJE ENSAMBLADOR 2.3. LENGUAJE DE ALTO NIVEL 3. ALGORITMOS. REPRESENTACIÓN
Arquitectura del CPU. Organización del Computador 1 Verano 2016
Arquitectura del CPU Organización del Computador 1 Verano 2016 Agenda De dónde venimos? Introducción: esquema de una computadora Representación de la información Circuitos Combinatorios Circuitos Secuenciales
Bus de direcciones. Bus de datos
1) INTRODUCCIÓN A LA MÁQUINA SENCILLA La máquina sencilla (MS) es un computador concebido para fines exclusivamente didácticos. MS sólo dispone de dos bloques: Unidad Central de Proceso y memoria principal.
Ejercicios del Tema 3. Fundamentos de la programación en ensamblador
Ejercicios del Tema 3. Fundamentos de la programación en ensamblador Ejercicio 1. Escriba un programa en ensamblador del MIPS 32 para calcular la suma de los 100 primeros números naturales. El programa
Ejercicios del Tema 3. Fundamentos de la programación en ensamblador
Ejercicios del Tema 3. Fundamentos de la programación en ensamblador Ejercicio 1. Dada la siguiente expresión de un lenguaje de alto nivel int a = 6; int b = 7; int c = 3; int d; d = (a+b) * (a+b); Indique
ESTRUCTURAS DE CONTROL
ESTRUCTURAS DE CONTROL En lenguajes de programación, las estructuras de control permiten modificar el flujo de ejecución de las instrucciones de un programa. Con las estructuras de control se puede: De
Microcontroladores de 32 bits ARM... O como no temerle al cambio!!
COMENTARIO TECNICO Microcontroladores de 32 bits ARM...... O como no temerle al cambio!! Por Ing. Marcelo E. Romeo i - Ing. Eduardo A. Martínez ii Parte 2 1. ARM7 Principales características. En base a
Guía práctica de estudio 06: Estructuras de repetición
Guía práctica de estudio 06: Estructuras de repetición Elaborado por: M.C. M. Angélica Nakayama C. Ing. Jorge A. Solano Gálvez Autorizado por: M.C. Alejandro Velázquez Mena Guía práctica de estudio 06:
Esquemas repetitivos en Fortran 90
Los esquemas repetitivos permiten implementar iteraciones del lenguaje algorítmico (mientras, repetir, para, hasta). Podemos dividir los esquemas según: - Se conozcan el número de iteraciones a priori,
Sesión 11 Implementación de sentencias condicionales
INGENIERÍATÉCNICA EN INFORMÁTICA DE GESTIÓN. CURSO 2001-2002 LABORATORIO DE ESTRUCTURA Y TECNOLOGÍA DE COMPUTADORES Sesión 11 Implementación de sentencias condicionales INSTRUCCIONES DE COMPARACIÓN Y SALTOS
Esquemas repetitivos en Fortran 90. Esquemas repetitivos en Fortran 90. Esquemas repetitivos en Fortran 90. Tipos de Esquema
Los esquemas repetitivos permiten implementar iteraciones del lenguaje algorítmico (mientras, repetir, para, hasta). Podemos dividir los esquemas según: - Se conozcan el número de iteraciones a priori,
FACULTAD DE INGENIERIA
i FACULTAD DE INGENIERIA AUTORES DEL CONTENIDO INGENIERO ELKIN GERMAN RODRIGUEZ VASQUEZ ID Facebook: www.facebook.com/elkinrodriguezv Correo: [email protected] INGENIERO ARIEL LEONARDO MOLINA VITERI
EXAMEN ORDINARIO DE ORGANIZACIÓN DE COMPUTADORES
11 de febrero de 2010 16h. Escuela Técnica Superior de Ingeniería Informática Camino del Cementerio s/n. 47011 Valladolid EXAMEN ORDINARIO DE ORGANIZACIÓN DE COMPUTADORES NOTA: Los alumnos con las prácticas
Lógica de programación
Universidad Nacional Autónoma de Nicaragua - León Facultad de Ciencias y Tecnología Departamento de Computación Lógica de programación Elaborado por: Lic. Luis Ernesto Díaz Beteta La característica fundamental
Conceptos 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.
3 - Arquitectura interna de un up
[email protected] 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
Comparaciones 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
Objetivos de la práctica: - Trabajar las estructuras de control repetitivas en la realización de programas.
Objetivos de la práctica: - Trabajar las estructuras de control repetitivas en la realización de programas. Sentencias de Control repetitivas (o bucles) Al igual que las estructuras selectivas, el bucle
Palabras reservadas de C++ y C. Una palabra reservada no puede declararse como un identificador, esto haría un conflicto entre conectores y funciones.
Palabras reservadas de C++ y C Una palabra reservada no puede declararse como un identificador, esto haría un conflicto entre conectores y funciones. A continuación se muestra el link del listado de palabras
Los números naturales y enteros en el 80X86 y en LAN
Los números naturales y enteros en el 80X86 y en LAN 1. Los números naturales en el 80X86/TASM Representación Sistema de representación En el 80X86 (y en la mayoría de los procesadores), los números naturales
Organización de computadoras. Clase 8. Universidad Nacional de Quilmes. Lic. Martínez Federico
Organización de computadoras Clase 8 Universidad Nacional de Quilmes Lic. Martínez Federico El Parcial Dónde estábamos? Limitaciones de Q3 Y ahora? Y ahora? Limitaciones de Q3 Flags: Qué? Cómo? Para qué?
Estructura de Computadores 2 [08/09] Entrada/Salida en procesadores MIPS
Estructura de Computadores 2 [08/09] Entrada/Salida en procesadores MIPS GAC: Grupo de Arquitectura de Computadores Dpt. Electrónica e Sistemas. Universidade da Coruña. Bibliografía Computer Organization
El Diseño de un Lenguaje Máquina
Arquitectura de Ordenadores Juego de Instrucciones del Procesador Intel Pentium Abelardo Pardo [email protected] Universidad Carlos III de Madrid Departamento de Ingeniería Telemática El Diseño de un Lenguaje
Funcionamiento de las computadoras
Funcionamiento de las computadoras Introducción a las ciencias de la computación Antonio López Jaimes UNIVERSIDAD AUTÓNOMA METROPOLITANA UNIDAD IZTAPALAPA Plan de la presentación El modelo de von Neuman
Instrucciones 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
INFORMATICA TECNICATURA DE NIVEL SUPERIOR ALGUNOS EJERCICIOS DE SELECCIÓN E ITERACION
INFORMATICA TECNICATURA DE NIVEL SUPERIOR ALGUNOS EJERCICIOS DE SELECCIÓN E ITERACION DIIAGRAMAS DE FLUJO Un diagrama de flujo es un dibujo que utiliza símbolos estándar de diagramación de algoritmos para
Un. VIII. Generación de Código Objeto
Un. VIII. Generación de Código Objeto 8.1 Lenguaje Máquina Es el que proporciona poca o ninguna abstracción del microprocesador de un ordenador. El lenguaje máquina solo es entendible por las computadoras.
Práctica 3 - Arquitectura del CPU
Práctica 3 - Arquitectura del CPU Organización del Computador 1 Primer cuatrimestre de 2012 Ejercicio 1 A partir de cada uno de los siguientes vuelcos parciales de memoria y estados del procesador, realizar
Programación. Test Autoevaluación Tema 4
Programación Test Autoevaluación Tema 4 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.
Arquitectura de Computadores II Clase #4
Clase #4 Facultad de Ingeniería Universidad de la República Instituto de Computación Curso 2010 Contenido Unidad de control Control cableado Control microprogramado MIC-1 La Unidad de Control La instrucción
Programcaión Básica. Secuencias de Control y Repetición. Arturo Vega González.
Programación Básica Arturo Vega González [email protected] Division de Ciencias e Ingenierías Universidad de Guanajuato Campus León Sesión 5 Universidad de Guanajuato, DCI, Campus León 1 / 31 Universidad
Introducción a los microcontroladores. Decanato de Postgrado Mayo de 2011
Introducción a los microcontroladores Decanato de Postgrado Mayo de 2011 Microcontroladores aaaaa Un microcontrolador (Micro Controller Unit, MCU), es un circuito integrado programable, construido con
Operadores aritméticos
Bloque 3.2 Operadores aritméticos Suma : x + y Resta : x y Multiplicación : x * y División : x / y Módulo : x % y (resto de la división Si los operandos son enteros tipo del resultado
Dobles: Es el caso de la instrucción if-else (punto 1.2).
1 1.Introducción Las estructuras de control son instrucciones que nos permiten controlar el flujo de ejecución del programa. Las instrucciones de control se pueden agrupar en instrucciones condicionales
Tema: Lenguaje ensamblador embebido
Compiladores. Guía 10 1 Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores Tema: Lenguaje ensamblador embebido Contenido En esta guía se presenta una breve introducción a las estructuras
Sistema 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
Capítulo 13 INSTRUCCIONES DE CONTROL REPETITIVAS. Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C"
Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C" Autor: Carlos Javier Pes Rivas ([email protected]) Capítulo 13 INSTRUCCIONES DE CONTROL REPETITIVAS 1 OBJETIVOS Conocer las
Estructuras de control
Estructuras de control Introducción Los algoritmos vistos hasta el momento han consistido en simples secuencias de instrucciones; sin embargo, existen tareas más complejas que no pueden ser resueltas empleando
la solución a una ecuación cuadrática solicitando al usuario los términos de dicha ecuación.
ALGORITMOS SECUENCIALES: La estructura secuencial es aquella en la que una acción (instrucción) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente
Tipos de Datos de python (2ª parte):
Tipos de Datos de python (2ª parte): Enteriormente hemos visto algunos de los tipos de datos que maneja python. Vimos: int, float, chr, str, bool También vimos como convertir datos a cada uno de estos
Estructuras de Control
Algorítmica y Lenguajes de Programación Estructuras de Control Estructuras de Control. Introducción Hasta ahora algoritmos han consistido en simples secuencias de instrucciones Existen tareas más complejas
Prácticas de inntroducción a la arquitectura de computadores con QtARMSim y Arduino
Prácticas de inntroducción a la arquitectura de computadores con QtARMSim y Arduino Sergio Barrachina Mir Germán Fabregat Llueca Germán León Navarro Rafael Mayo Gual Maribel Castillo Catalán Juan Carlos
Guí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
ARQUITECTURA VON NEUMANN
ARQUITECTURA VO EUMA Computador bus de datos bus de direcciones bus de control Usuario y aplicaciones Lenguajes de alto nivel Sistema operativo Unidad Central de Proceso Memoria principal Unidad de Entrada
LENGUAJE DE PSEUDOCÓDIGO
LENGUAJE DE PSEUDOCÓDIGO METODOLOGÍA DE LA PROGRAMACIÓN Ingeniería Informática Primer curso, segundo cuatrimestre Escuela Politécnica Superior de Córdoba Universidad de Córdoba 1 Contenido 1. Sentencias...
fundamentos 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
Lección 3 Sentencias de control
3.1. INTRODUCCIÓN - Hasta aquí: ejecución secuencial de los programas. - Aquí vamos a ver: Lección 3 Sentencias de control Sentencias de control Sentencias condicionales: if- y switch-case Sirven para
GLOSARIO 1. Qué es bit y byte? Bit: Es la unidad mínima de información. Puede ser 0 o 1. Byte: Es el conjunto de 8 bits. Ejemplo:
Cuestionario Modulo 1.1 GLOSARIO 1. Qué es bit y byte? Bit: Es la unidad mínima de información. Puede ser 0 o 1. Byte: Es el conjunto de 8 bits. Ejemplo: 1001 0110. 2. qué es Dato? Definición: Es toda
Unidad II: Análisis semántico
Unidad II: Análisis semántico Se compone de un conjunto de rutinas independientes, llamadas por los analizadores morfológico y sintáctico. El análisis semántico utiliza como entrada el árbol sintáctico
TEMA 5. PROGRAMACIÓN BÁSICA EN MATLAB /OCTAVE
BLOQUE TEMÁTICO II TEMA 5 TEMA 5. PROGRAMACIÓN BÁSICA EN MATLAB /OCTAVE 5.1. Introducción a Matlab y Octave 5.2. Entrada y salida con formato 5.3. Programas: script y funciones 5.4. Estructuras alternativas
Diseño del procesador MIPS R2000
Diseño del procesador MIPS R2000 Aula Virtual IS09 Sergio Barrachina Mir Área de Arquitectura y Tecnología de Computadores Dpt. de Ingeniería y Ciencia de los Computadores Universidad Jaume I Índice 1.
Control de Flujo. Estructuras de Control! Experiencia Educativa de Algorítmica CONTROL DE FLUJO
Control de Flujo Estructuras de Control Experiencia Educativa de Algorítmica 1 Introducción El estilo de como escribimos y analizamos un algoritmo se convierte en una de las principales características
Introducción a los Computadores (CNM-130) Estructuras de control repetitivas en FreeMat
Introducción a los Computadores (CNM-130) Estructuras de control repetitivas en FreeMat Alejandro Piedrahita H. Instituto de Matemáticas Facultad de Ciencias Exactas y Naturales Universidad de Antioquia
Asignatura de Organización de Computadoras. Alberto Hernández Cerezo. Cristian Tejedor García. Rodrigo Alonso Iglesias. Universidad de Valladolid
Asignatura de Organización de Computadoras ARQUITECTURA MIPS SEGUNDO TRABAJO Alberto Hernández Cerezo Cristian Tejedor García Rodrigo Alonso Iglesias Universidad de Valladolid Segundo de Ingeniería Técnica
Objetivo. Introducción. Tema: GENERACION DE CODIGO. Compiladores, Guía 11 1
Compiladores, Guía 11 1 Tema: GENERACION DE CODIGO. Facultad : Ingeniería Escuela :Computación Asignatura:Compiladores Objetivo Reconocer las diferentes instrucciones para la generación de código.ensamblador
PRÁCTICA FUNDAMENTOS DE ALGORITMOS (Estructuras de Repetición II) Objetivos
Objetivos El alumno conocerá las estructuras básicas para el diseño de algoritmos 1. Conocerá las estructuras de repetición para el diseño de algoritmos 2. Diseñará sus algoritmos utilizando las estructuras
Fundamentos de Programación
Fundamentos de Programación COMENTARIOS Microsoft Visual Basic interpreta que todo lo que está a la derecha del carácter ( ) en una línea cualquiera de programa es un comentario y no ejecuta acción alguna.
Introducción a la arquitectura de computadores con QtARMSim y Arduino
Introducción a la arquitectura de computadores con QtARMSim y Arduino Sergio Barrachina Mir Germán Fabregat Llueca Germán León Navarro Rafael Mayo Gual Maribel Castillo Catalán Juan Carlos Fernández Fernández
Todo 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
Estrategias de predicción dinámicas.
Estrategias de predicción dinámicas. Las técnicas que vamos a ver ahora para predicción de saltos se basan en información conocida sólo en tiempo de ejecución. Dos estructuras son necesarias para realizar
TEMA 4. ESTRUCTURAS DE CONTROL
M.P. Sesmero, P. de Toledo, F.J. Ordoñez, J. Gómez-Romero, J.A. Iglesias, J.L. Mira Programación TEMA 4. ESTRUCTURAS DE CONTROL Grado en Ingeniería en Tecnologías Industriales Programación CONTENIDOS 4.1.
Práctica 4. Organización del Computador 1 12 de septiembre de Algunas consideraciones preliminares:
Práctica 4 Organización del Computador 1 12 de septiembre de 2005 Algunas consideraciones preliminares: Donde aparece xxxxxxxx quiere decir que el valor correcto ya está en esa dirección de memoria Todos
TEMA 3: Estructuras de Control: Iterativas
UNIVERSIDAD CENTRAL DE VENEZUELA FACULTAD DE CIENCIAS ESCUELA DE MATEMÁTICA INTRODUCCIÓN A LA COMPUTACIÓN TEMA 3: Estructuras de Control: Iterativas Estructuras Iterarivas En la programación existen las
Programación: Estructuras de Control
Programación: 2 Estructuras de Control Contenido 2.1.- Introducción 2.2.- Estructuras de Selección 2.2.1.- Sentencia if 2.2.2.- Sentencia switch 2.3.- Estructuras de Iteración 2.3.1.- Sentencia while 2.3.2.-
Estructuras de Repetición
1 Estructuras de Repetición 2013 Transversal de Programación Básica Proyecto Curricular de Ingeniería de Sistemas 2 Objetivos Aprender a construir grandes y complejos problemas a través de la ejecución
BREAK: FORZAR SALIDA BUCLES FOR, WHILE, DO EN C. LOOP. STATEMENT NOT WITHIN LOOP OR SWITCH (CU00545F)
APRENDERAPROGRAMAR.COM BREAK: FORZAR SALIDA BUCLES FOR, WHILE, DO EN C. LOOP. STATEMENT NOT WITHIN LOOP OR SWITCH (CU00545F) Sección: Cursos Categoría: Curso básico de programación en lenguaje C desde
Representación binaria de números enteros en complemento a 2
Representación binaria de números enteros en complemento a 2 Jorge Juan Chico [email protected] Departamento de Tecnología Electrónica. Universidad de Sevilla 23 de octubre de 2016 Índice Prefacio 2 1.
ARQUITECTURA VON NEUMANN
ARQUITECTURA VON NEUMANN Computador bus de datos bus de direcciones bus de control Usuario y aplicaciones Lenguajes de alto nivel Sistema operativo Unidad Central de Proceso Memoria principal Unidad de
TEMA 4: Programación estructurada
TEMA 4: Programación estructurada 4.1.-Introducción. Teorema de la programación estructurada El principio fundamental de la programación estructurada es que en todo momento el programador pueda mantener
Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta
Centro Asociado Palma de Mallorca Antonio Rivero Cuesta La Sintaxis de Java II... 6 Estructuras de control... 7 Estructuras de selección... 8 Sentencia if... 9 Sentencia if - else... 12 Operador condicional...
Arquitectura y mapa de memoria del 80C167. Cesáreo Fernández Martínez Álvaro Sánchez Miralles
Arquitectura y mapa de memoria del 80C167 Cesáreo Fernández Martínez Álvaro Sánchez Miralles Introducción Microcontrolador (Embedded Processor) de 16 bits ALU y Registros de 16 bits Diseñado para tareas
Es un conjunto de palabras y símbolos que permiten al usuario generar comandos e instrucciones para que la computadora los ejecute.
Los problemas que se plantean en la vida diaria suelen ser resueltos mediante el uso de la capacidad intelectual y la habilidad manual del ser humano. La utilización de la computadora en la resolución
Primeros pasos con ARM y Qt ARMSim
C a p í t u l o 1 Primeros pasos con ARM y Qt ARMSim Índice 1.1. Introducción al ensamblador Thumb de ARM... 3 1.2. Introducción al simulador Qt ARMSim....... 8 1.3. Literales y constantes en el ensamblador
Fundamentos PHP. El término puntuación nos referimos a la sintaxis usada en PHP para la terminación de una línea de código (;)
Tags Fundamentos PHP La Sintaxis de PHP se deriva de muchos lenguajes de programación principalmente de C pero Perl también ha tenido mucha influencia en esta sintaxis Con las últimas incorporaciones agregadas,
Control de Flujo. Estructuras de Control! Experiencia Educativa de Algorítmica CONTROL DE FLUJO
Control de Flujo Estructuras de Control Experiencia Educativa de Algorítmica 1 Introducción El estilo de como escribimos y analizamos un algoritmo se convierte en una de las principales características
Estructura de Computadores. Problemas de Instrucciones y Direccionamientos
Estructura de Computadores. Problemas de Instrucciones y Direccionamientos Departamento de Arquitectura y Tecnología de Sistemas Informáticos Octubre 2009 1. Sea un computador con palabras y direcciones
Práctica 5 - Memoria Cache
Práctica 5 - Memoria Cache Organización del Computador 1 Verano 2008 Aclaración: siempre que se informa del tamaño de una memoria cache o de una línea, se está haciendo referencia a la capacidad útil de
Estructuras Repetitivas
Estructuras Repetitivas Se solicita al operador que ingrese tres números enteros cualesquiera. En base a estos números, mostrar por pantalla cual es el mayor de todos. Diag. De Flujos Pseudocódigo Matlab
5. ESTRUCTURAS DE REPETICIÓN
5. ESTRUCTURAS DE REPETICIÓN Las estructuras de repetición, permiten la ejecución de una lista o secuencia de instrucciones () en varias ocasiones. El número de veces que el bloque
Tema 3. Estructuras de Datos
Tema 3! Estructuras de Datos Estructuras Simples, Doble, Anidada y Múltiple En este tema veremos las sentencias selectivas: IF (Si) IF - Then (Si - Entonces) IF - Then - Else ( Si - Entonces - Sino) Switch
Codificación de Estructuras Repetitivas
Codificación de Estructuras Repetitivas Estructuras Repetitivas Existen dos casos: Caso1:Cuando se conoce la cantidad de veces a repetir(para o for en C) Caso2:Cuando no se conoce la cantidad de veces
Instrucción De Salto Incondicional
INSTRUCCIONES DE CONTROL DE FLUJO Los programas que se han desarrollado hasta ahora se ejecutan en forma secuencial, esto es, el programa inicia su ejecución con la primera instrucción y continúa de arriba
DESCRIPCIÓN DE LA ARQUITECTURA DE LA MÁQUINA RUDIMENTARIA
DESCRIPCIÓN DE LA ARQUITECTURA DE LA MÁQUINA RUDIMENTARIA INTRODUCCIÓN La Máquina Rudimentaria (MR) es un procesador pedagógico. Su principal objetivo es servir como herramienta para enseñar los conceptos
INSTRUCCIONES. Las instrucciones del microcontrolador Z8 PLUS se pueden clasificar en grupos de acuerdo a su función como:
INSTRUCCIONES Las instrucciones del microcontrolador Z8 PLUS se pueden clasificar en grupos de acuerdo a su función como: Instrucciones de carga Manipulación de bit Aritméticas Transferencias Lógicas Rotación
Distinguir las diferentes estructuras de repetición utilizadas en problemas con bucles: mientras, repetir mientras, para.
ESTRUCTURAS ITERATIVAS 1 ESTRUCTURAS ITERATIVAS OBJETIVOS Aprender a resolver problemas mediante la ejecución repetida de una secuencia de proposiciones llamados bucle o estructuras repetitivas o iterativas.
Tema 2: Lenguaje máquina. La interfaz entre el hardware y el software
Tema 2: Lenguaje máquina La interfaz entre el hardware y el software 1 Índice Introducción. Formatos de Instrucción. Modos de Direccionamiento. Ortogonalidad y Regularidad. Frecuencia de Utilización de
8.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
Fundamentos de Programación Visual Basic
Pág. N. 1 Fundamentos de Programación Visual Basic Familia: Editorial: Tecnología de información y computación Macro Autor: Ricardo Walter Marcelo Villalobos ISBN: 978-612-304-236-3 N. de páginas: 280
TEMA 4. ARQUITECTURA IA-64
TEMA 4. ARQUITECTURA IA-64 Stalling, W.Computer Organization and Architecture cap. 15 Intel IA-64 Architecture Software Developer s Manual Generalidades IA-64 Desarrollo conjunto Intel-HP Nueva arquitectura
Construyendo Programas más Complejos
Arquitectura de Ordenadores Construcciones de Alto Nivel en Ensamblador Abelardo Pardo [email protected] Universidad Carlos III de Madrid Departamento de Ingeniería Telemática Construyendo Programas más
Tema 2 Conceptos básicos de programación. Fundamentos de Informática
Tema 2 Conceptos básicos de programación Fundamentos de Informática Índice Metodología de la programación Programación estructurada 2 Pasos a seguir para el desarrollo de un programa (fases): Análisis
Fundamentos de programación
Fundamentos de programación Estructuras de Control Estructuras de control Estructuras de control Estructura secuencial Estructura alternativa Sentencias if, if else Sentencias if else anidadas El operador
Sentencias de Procesamiento Iterativo: while y do-while
ESTRUCTURAS CÍCLICAS Se discuten en este documento las sentencias que se utilizan en el lenguaje C++ para representar la tercera de las estructuras utilizadas en la programación estructurada: La Estructura
