Práctica 3
Implementación de estructuras de control en ensamblador
Objetivo
Adquirir las competencias necesarias para desarrollar programas en ensamblador
que utilicen las estructuras de control que propone el modelo de pangrogramación
estructurada implementadas, utilizando instrucciones de comparación y de salto.
Introducción
A finales de los años sesenta surgió una nueva forma de programar que no
solamente daba lugar a programas fiables y eficientes, sino que además estaban
escritos de manera que facilitaba su comprensión posterior: la programación
estructurada.
La programación estructurada es un modelo de programación que propone que
todo programa puede escribirse utilizando únicamente las tres estructuras de
control siguientes:
Secuencial.
Condicional o selectiva.
Iteración, repetición o bucle de instrucciones.
Utilizando solamente estas tres estructuras se puede hacer cualquier programa
informático.
Estas estructuras de control se implementan en lenguaje ensamblador
combinando instrucciones de comparación con instrucciones de salto. En esta
práctica aplicarás estas combinaciones para implementar en ensamblador tres
pseudocódigos que utilizan diferentes estructuras de la programación
estructurada.
Actividades
1. Programa de ejemplo
1.1. Implementa el siguiente pseudocódigo en lenguaje ensamblador:
r16 = 0
r17 = 20
r18 = 0
mientras (r16 <= r17)
add r18,r16
inc r16
fin_mientras
mov r30,r16
1.2. Inserta aquí el programa en ensamblador que implementa el pseudocódigo
anterior:
Práctica 3
Implementación de estructuras de control en ensamblador
(Código de tu programa)
1.3. Captura, ensambla y ejecuta el programa anterior utilizando el AVRStudio.
Reporta los valores de los siguientes registros al terminar la ejecución de tu
programa:
r16 = ___________ r17 = ___________ r18 = ___________
2. Programas adicionales
2.1. Ahora inserta aquí el pseudocódigo del programa que divide restando,
algoritmo que desarrollaste en la Tarea 4:
(Pseudocódigo para dividir restando)
2.2. Ahora implementa este pseudocódigo en ensamblador e inserta aquí el
programa resultante:
(Código de tu programa)
a) ¿Cuál registro utilizas para guardar el cociente? Respuesta: ____________
b) ¿Cuál registro utilizas para guardar el residuo? Respuesta: ____________
2.3. Captura, ensambla y ejecuta el programa anterior utilizando el AVRStudio.
Utiliza tu programa para realizar las divisiones siguientes y reporta los resultados
obtenidos:
a) 120/43 Cociente: ___________ Residuo: ___________
b) 235/7 Cociente: ___________ Residuo: ___________
c) 200/11 Cociente: ___________ Residuo: ___________
2.4. Ahora inserta aquí el pseudocódigo del programa que calcula la raíz cuadrada
aproximada de un número restando impares sucesivos, algoritmo que
desarrollaste en la Tarea 4:
(Pseudocódigo para calcular la raíz cuadrada aproximada restando impares
sucesivos)
2.5. Ahora implementa este pseudocódigo en ensamblador e inserta aquí el
programa resultante:
(Código de tu programa)
a) ¿Cuál registro utilizas para guardar la raíz cuadrada aproximada?
Respuesta: _______
Práctica 3
Implementación de estructuras de control en ensamblador
2.6. Captura, ensambla y ejecuta el programa anterior utilizando el AVRStudio.
Utiliza tu programa para calcular la raíz cuadrada aproximada de los números
siguientes y reporta los resultados obtenidos:
a) 250 Raíz cuadrada aproximada: ____________
b) 80 Raíz cuadrada aproximada: ____________
c) 120 Raíz cuadrada aproximada: ____________
3. Comentarios y conclusiones
(Inserta aquí tus comentarios y conclusiones sobre esta práctica. Debes incluir al
menos un comentario pertinente a los programas implementados en esta práctica
y al menos una conclusión).