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 
Hosted by www.Geocities.ws

1