CALNC

Instrucciones  ï¿½ndice 

CALNC

Realiza un salto condicional (si el bit 0 del acumulador es 0) a otra parte del programa y memoriza el punto de retorno. Puede ser dentro de la misma porción de código o de alguna otra subrutina. Esta se identifica por una etiqueta (label), y es siempre hacia adelante (no es prudente hacer saltos hacia atrás). Es el punto a partir del cual se seguir� ejecutando el programa. Use la instrucción RET para volver a seguir ejecutando el programa en la l�nea siguiente a la que se hizo el llamado.

 

    CAL Sub1     ;Salta (o llama) a la subrutina de nombre "Sub1"

    ST q0.0      ;Instrucción siguiente o punto de retorno de la subrutina

    LD sm0.4

    CALC Sub1    ;Salta (o llama) a la subrutina de nombre "Sub1" si el bit 0 del acumulador es 1

    LD sm0.5

    CALNC Sub1   ;Salta a la subrutina llamada "Sub1" si el bit 0 del acumulador es 0

    END          ;Termina el programa y vuelve a ejecutar desde el principio

 

Sub1: LD i0.0    ;Primera instrucción de la subrutina

    RETC         ;Retorno condicional (si el bit 0 del acumulador es 1)

    AND i0.1

    RETNC        ;Retorno condicional (si el bit 0 del acumulador es 0)

    XOR i0.2

    RET          ;Retorno incondicional de la subrutina



  Esta instrucci�n se ubica en el sector de salidas

Sintaxis

N�tese que termina con los ":", y que �stos no aparecen cuando est� con la instrucci�n. As� es como se distingue entre destino de salto y argumento.
Supongamos que hay varias m�quinas iguales controladas por un solo equipo. Repetir la rutina por cada una adaptando los nombres de los saltos es para errores. Se puede organizar poniendo el c�digo de control de cada una en una pesta�a. Esto reduce a copiar y pegar con mucho menos cambios. Entonces, para que las etiquetas no se confundan se les a�ade el nombre de la pesta�a correspondiente:
  

NombrePesta�a@Etiqueta

 Entonces el programa (principal) quedar�a de esta forma:

    CAL Main@Sub1   ;Salta (o llama) a la subrutina de nombre "Sub1"

    ST q0.0         ;Instrucción siguiente o punto de retorno de la subrutina

    LD sm0.4

    CALC Main@Sub1  ;Salta (o llama) a la subrutina de nombre "Sub1" si el bit 0 del acumulador es 1

    LD sm0.5

    CALNC Main@Sub1 ;Salta a la subrutina llamada "Sub1" si el bit 0 del acumulador es 0

    END             ;Termina el programa y vuelve a ejecutar desde el principio

 

Sub1: LD i0.0       ;Primera instrucción de la subrutina

    RETC            ;Retorno condicional (si el bit 0 del acumulador es 1)

    AND i0.1

    RETNC           ;Retorno condicional (si el bit 0 del acumulador es 0)

    XOR i0.2

    RET             ;Retorno incondicional de la subrutina  

 Descargar ejemplo (espa�ol) (ingl�s)

�ndice