Logo Studenta

Actividad_9_SernaSerna - Jose SernaS

Vista previa del material en texto

Centro Universitario de Ciencias Exactas e 
Ingenierías 
Ingeniería en computación 
Traductores de lenguajes 1 
Sección D05 
José Luis Serna Serna 
Código: 218292327 
Actividad 9, 2020A, IF, IF ELSE, DO WHILE Y CASE 
19/Mar/2020 
 
 
Objetivo. 
implementar un programa que implemente en ensamblador estructuras de control como IF, IF 
ELSE, DO WHILE Y CASE, y además usar su construcción de diagrama de flujo. 
IF. 
Diagrama de flujo. 
 
Código fuente. 
org 100 
jmp start: 
 
start: 
 mov ax,08h ;le asigno un valor de 8 a ax 
 
 cmp ax,07h ;compara lo de ax con 7 
 ja if ;si es mayor le suma 2 si no fin de programa 
 
 if:; si se cumple la condicion suma 2 
 add ax,02h 
 jmp end ; fin del programa 
 
end: ;fin del programa 
 mov ah,0 
 int 16h 
 ret 
 
Capturas de pantalla de la ejecución. 
Realiza la comparación si lo que tiene ax es mayor que 7 
 
Se cumple la condición así que salta al if y se realiza lo que tiene especificado. 
 
 
IF ELSE. 
Diagrama de flujo. 
 
Código fuente. 
org 100 
jmp start: 
 
start: 
 mov ax,02h ;le asigno un valor de entrada ax=2 
 
 cmp ax,04h ;compara lo de ax con 4 
 ja if ;si ax es mayor que 4, le suma 6 
 jb else ;si no es mayor que 4, le suma 8 
 
 if:;se cumple la condicion suma 6 
 add ax,06h ;resultado = 8 
 jmp end ; fin del programa 
 
 else:;si no se cumple suma 8 
 add ax,08h ;resultado = 10 
 jmp end 
 
end:;fin 
 mov ah,0 
 int 16h 
 ret 
Captura de pantalla de la ejecución. 
No se cumple la condición para el IF. 
 
Se cumple la condición para ELSE, salta y realiza esa suma. 
 
 
 
 
 
DO WHILE. 
Diagrama de flujo. 
 
Código fuente. 
org 100 
 jmp start: 
 
start: 
 mov ax,00h ;valor de entrada de a 
 
 DoWhile: 
 add ax,01h ;suma antes de comparar 
 cmp ax,0Fh ;comparar que ax no sea igual a 15 
 jb doWhile ;salto si ax es menor 
 jmp end 
 
end:;fin 
 mov ah,0 
 int 16h 
 ret 
 
Captura de pantalla de la ejecución. 
Le suma el primer 1 y realiza la primera comparación, como ax es menor que el numero 
comparado se regresa con el salto y se sigue repitiendo. 
 
Se repite 15 veces hasta que la ya no se cumple la condición y se sale de ese ciclo, salta al final del 
programa. 
 
 
 
 
WHILE. 
Diagrama de flujo. 
 
Código fuente. 
org 100 
 jmp start: 
 
start: 
 mov ax,00h ;se le asigna valor a ax 
 While: 
 cmp ax,0Ah ;repetir hasta que no sea menor que 10 
 jb sumadewhile ;salto si ax es menor 
 jmp end 
 
 sumadewhile: 
 add ax,01h 
 jmp While 
 
end:;fin 
 mov ah,0 
 int 16h 
 ret 
 
 
Capturas de pantalla de la ejecución. 
Como se cumple la condición de que ax es menor al número comparado, realiza el salto a la 
operación de suma y se sigue repitiendo el ciclo WHILE. 
 
Cuando ax llega al valor de la condición esta ya no se cumple y sale y salta al final del programa. 
 
 
 
 
 
 
CASE. 
Diagrama de flujo. 
 
Código fuente. 
org 100h 
 jmp start: 
 
 start: 
 mov ax, 05h ;asigno un valor a ax 
 
 cmp ax, 01h ;compara ax con 1 
 je case1 ;si es igual brinca a case1 
 
 cmp ax, 03h ;compara ax con 3 
 je case2 ;si es igual brinca a case2 
 
 cmp ax, 05h ;compara ax con 5 
 je case3 ;si es igual brinca a case3 
 
 sub ax, 04h ;si no es igual a ninguna 
 jmp end ;se realiza esta operacion por 
 ;default 
 
 case1: ;caso 1 
 add ax, 06h ;operacion 
 jmp end ;salto a fin del programa 
 
 case2: ;caso 2 
 add ax, 03h ;operacion 
 jmp end ; salto al fin del programa 
 
 case3: ;caso 2 
 add ax, 05h ;operacion 
 jmp end ;salto al fin del programa 
 
 end: ;fin del programa 
 mov ah, 0h 
 int 16h 
 ret 
 
Capturas de pantalla de la ejecución. 
No se cumple la comparación por eso no realiza el salto al case1. 
 
La misma situación para el case2. 
 
 
 
Ahora si se cumple la comparación de ax con 5 y salta al case3 y realiza la operación indicada. 
 
 
 
Realiza la operación y brinca al fin del programa, es como un break. 
 
 
Conclusiones. 
En esta actividad pude ver como es que funcionan por dentro a más bajo nivel las estructuras de 
control IF, IF ELSE, DO WHILE Y CASE, estructuras que utilizamos muy a menudo en lenguajes de 
programación de medio y alto nivel, vi que por medio de saltos y operaciones con registros es 
cómo funcionan, además con el estudio de sus diagramas de flujo me queda mas claro su 
funcionamiento.

Otros materiales

Materiales relacionados

240 pag.
kupdf net_a-prende-java_ejercicios

ULT

User badge image

Manuel Rodrigues Monameo

240 pag.
JAvA_CON_EJEMPLOS

ULT

User badge image

Manuel Rodrigues Monameo

7 pag.
EnunciadoP1

User badge image

Materiales Generales