|
DIV |
Instrucciones �ndex |
|
Con un argumento Divide el valor del acumulador (Acc) por el del argumento DIV arg ;Es lo mismo que Acumulador = Acumulador / arg
El argumento puede ser una variable analógica o una constante. Con dos argumentos Divide las variables arg1 y arg2, y el resultado queda en el acumulador aritm�tico AAcc. Ambos argumentos deben ser del mismo tipo (entero, largo o real). La ejecuci�n es condicional. Disponible a partir del CP121 BIOS 2.60 hasta 2.64, CP122 BIOS 2.10 hasta 2.13, CP123 BIOS 2.20 hasta 2.23 y CP124 BIOS 1.06 DIV arg1, arg2 Ejemplo: LD 1 ;Permiso de ejecuci�n DIV sng0, sng1 ;AAccR = sng0 / sng1 DIV AAccR, sng2 ;AAccR = AAccR / sng2
LD 1 ;Permiso de ejecuci�n DIV arg0, arg1 ;AAcc = arg0 / arg1 DIV AAcc, arg2 ;AAcc = AAcc / arg2
Es necesario comprobar los resultados de cada operaci�n para tener certeza de que no se superen los l�mites de los tipos de datos, pues esto resultar�a en valores err�neos. Supongamos un caso de tres variables con un valor de 30000: LD 1 ;Permiso de ejecuci�n MUL arg1, arg2 ;AAcc = 900000000, que es menor que 2147483648 (231) MUL AAcc, arg3 ;AAcc deber�a tener 2.7 x 1013, pero tiene cualquier otro a causa del desbordamiento Con tres argumentos A partir del CP121 2.70, CP122 2.20, CP123 2.30, CP125 1.10, varias instrucciones de dos argumentos son reemplazadas por tres argumentos. El comportamiento de cada uno resulta en la siguiente forma: DIV arg1, arg2, arg3 equivale a arg1 = arg2 / arg3 El primer argumento (arg1) debe ser de 32bit mientras que el resto (arg2 y arg3) pueden combinarse 16bit, 32bit y constantes. Solo para el tipo real todos deben ser del mismo tipo. Ver tipo de dato. La ejecuci�n es condicional. Para CP220, CP127, CP128 Tiene mas combinaciones posibles. La regla es que el resultado (arg1) es de un tipo igual o mayor al mayor de los argumentos (arg2 y arg3). Ejemplo: si se suma un real con un entero, el resultado ser� en real. Las variantes son: arg1 arg2 arg3 int16 = int16 / int16 En Ladder el orden cambia, ya que el arg1 = arg2 + arg3 se representa como: arg2 +arg3 arg1 quedando el arg1 al final en vez de al principio. Esto ocurre con ADD, DIV, FAVG, FIFO, FILL, MOD, MUL, SCALE, STDVT y SUB.
|