Universidad Antonio Nariño

Aplicación Industrial de Micros
Código: 444405

CAPITULO 3
Técnicas en languaje ensamblador

3.4 Ramificación múltiple
 
Cuando se tiene que solucionar un diagrama de flujo como el de la figura 3.4.1 en el cual tenemos tres posibles respuestas a una pregunta, se plantean las soluciones aquí presentadas.
 
FIG. 3.4.1 Tres posibilidades para una pregunta.
Solución #1
Una de las formas de solucionar en un programa este problema es:

Determinando para la opción 1, la opción 2 y la opción 3 un valor consecutivo como:
 
    opción1    equ    0
    opción2    equ    1
    opción3    equ    2
 
Uno de estos posibles valores llevarlos a W y en una parte del programa tratarlos así:
 
Decisión:                        ;sitio en donde la pregunta "?" tendría solución
    addwf    PCL,1
    goto        Acción1
    goto        Acción2
    goto        Acción3
Acción1:
...............................    ;instrucciones correspondientes a la Acción 1
...............................
...............................
    goto encuentro
Acción2:
...............................    ;instrucciones correspondientes a la Acción 2
...............................
...............................
    goto encuentro
Acción3:
...............................    ;instrucciones correspondientes a la Acción 3
...............................
...............................
encuentro:                    ;sitio de encuentro luego de una de las acciones
...............................    ;continuación del programa
...............................

Solución #2
Otra forma posible es comparando una por una los valores de las diferentes opciones almacenadas en memoria RAM en una variable llamada OPCION

    movlw     Opción1
    xorwf      OPCION,0    ;se realiza la verificación del contenido de OPCION con respecto a W
    btfsc        STATUS,Z    ;Verificando la bandera Z
    goto        Acción1
    movlw     Opción2
    xorwf      OPCION,0    ;se realiza la verificación del contenido de OPCION con respecto a W
    btfsc        STATUS,Z    ;Verificando la bandera Z
    goto        Acción2
    movlw     Opción3
    xorwf      OPCION,0    ;se realiza la verificación del contenido de OPCION con respecto a W
    btfsc        STATUS,Z    ;Verificando la bandera Z
    goto        Acción3
Acción1:
...............................    ;instrucciones correspondientes a la Acción 1
...............................
...............................
    goto encuentro
Acción2:
...............................    ;instrucciones correspondientes a la Acción 2
...............................
...............................
    goto encuentro
Acción3:
...............................    ;instrucciones correspondientes a la Acción 3
...............................
...............................
encuentro:                    ;sitio de encuentro luego de una de las acciones
...............................    ;continuación del programa
...............................
Aunque este último método es más largo que el anterior, permite que los valores de las diferentes opciones no sean consecutivos entre si.


  índice de capítulo