Descargar

Operaciones aritméticas – PLC

Enviado por Pablo Turmero


Partes: 1, 2

    edu.red

    STC / CLC, FUN 40 / 41 FUNCIÓN: ESTAS INSTRUCCIONES GESTIONAN EL FLAG DE ACARREO, O FLAG CY. EL FLAG CY SE UTILIZA EN LAS OPERACIONES MATEMÁTICAS, PARA DETECTAR: EXISTENCIA DE OVERFLOW EN EL RESULTADO DE UNA SUMA (ADD) EXISTENCIA DE RESULTADO NEGATIVO EN UNA SUBSTRACCIÓN (SUB) LD 0000 STC(40) LD NOT 0000 CLC(41) LD 1904 OUT 1000

    edu.red

    SUMA BDC: ADD, FUN(30) /1 (Série C) LA INSTRUCCIÓN ADD EJECUTA LA SUMA ENTRE DOS DATOS DE 16 BIT (CANALES Y/O CONSTANTES) EN FORMATO BCD AL RESULTADO SE LE SUMA EL ACARREO SUMANDO 1 SI CY= ON LOS PARÁMETROS DE LAS INSTRUCCIONES SON 3: A1,A2 = SUMANDOS (#, IR, SR, HR, TIM, CNT) R = RESULTADO (IR, HR) = A1+A2+CY A1 A2 R LD 0000 STC(40) ADD(30) HR00 #0001 HR00

    edu.red

    SUMA BDC: ADD, FUN(30) /2 (Série C) EN EL CASO DE ACARREO (CY = 1), LA SUMA DE LOS DOS SUMANDOS HA SUPERADO EL LÍMITE 9999. EL RESULTADO EFECTIVO ES ENTONCES 10000+R EN EL CASO DE SUMA CON 8 O MÁS CIFRAS BCD, (SUMA COMBINADA) SE DEBERÁ RESETEAR CY SÓLO PARA LA PRIMERA SUMA. SI EL RESULTADO DE LA OPERACIÓN SUMA ES = 0, ENTONCES EL FLAG EQ = 1 SI LOS SUMANDOS NO ESTÁN EN FORMATO BCD, LA OPERACIÓN NO SE EJECUTA Y ENTONCES ER = 1

    edu.red

    RESTA BDC: SUB, FUN(31) /1 (Série C) LA INSTRUCCIÓN SUB EJECUTA LA SUBSTRACCIÓN DE DOS DATOS DE 16 BIT EN FORMATO BCD AL RESULTADO SE LE RESTA EL ACARREO O BIEN SE LE SUMA -1 SI CY = ON LOS PARÁMETROS DE LA INSTRUCCIÓN SON 3: Mi = MINUENDO (#, IR, SR, HR, TIM, CNT) Su = SUSTRAENDO (#, IR, SR, HR, TIM, CNT) R = RESULTADO (IR, HR) = Mi – Su – CY Mi Su R LD 0000 STC(40) SUB(31) #0100 00 05

    edu.red

    RESTA BDC: SUB, FUN(31) /2 (Série C) SEGÚN LOS VALORES QUE TENGAN Mi Y Su, SE TIENEN LOS SIGUIENTES CASOS: (Gp:) RESULTADO (Gp:) CY (Gp:) EQ (Gp:) DATOS (Gp:) Mi > Su (Gp:) Mi = Su (Gp:) Mi < Su (Gp:) R= Mi – Su (Gp:) R= 0 (Gp:) R= Mi + (10000-Su) (Gp:) 0 (Gp:) 0 (Gp:) 1 (Gp:) 0 (Gp:) 1 (Gp:) 0

    SI Mi Y Su NO ESTÁN EN EL FORMATO BCD, LA OPERACIÓN NO SE EJECUTA, Y ER = 1

    edu.red

    EJEMPLO DE PROGRAMACIÓN (Série C) SUMA DE DATOS DE HASTA 8 DÍGITOS APLICACIÓN: SE TRATA DE SUMAR DOS DATOS QUE PUEDEN TENER UNA LONGITUD DE HASTA 8 DÍGITOS. ESTE PROGRAMA PUEDE LLEVARSE A CABO UTILIZANDO DIRECTAMENTE LA INSTRUCCIÓN DE SUMA DE DOBLE LONGITUD PERO LO HAREMOS USANDO LA INSTRUCCIÓN ADD NORMAL. LOS DATOS A SUMAR SON LOS SIGUIENTES: DATO A: 4 DÍGITOS MAYORES 4 DÍGITOS MENORES DATO B: 4 DÍGITOS MAYORES 4 DÍGITOS MENORES DM1 DM0 DM3 DM2 EL RESULTADO SE GUARDARÁ EN : DÍGITO NUM 9 4 DÍGITOS MAYORES 4 DÍGITOS MENORES DM6 DM5 DM4 El programa debe poder detectar si alguno de los datos A o B no está en formato BCD. Utilizar el CARRY en las instrucciones suma.

    edu.red

    MULTIPLICACIÓN BCD: MUL, FUN(32) (Série C) FUNCIÓN: MULTIPLICA EL CONTENIDO DE LOS DATOS ESPECIFICADOS EN LA INSTRUCCIÓN (EN BCD) Y EL RESULTADO SE TRANSFIERE A UN REGISTRO. MUL A B C A, B = CANALES /CONSTANTES R = REGISTRO RESULTADO

    edu.red

    MULTIPLICACIÓN BCD: MUL, FUN(32) (Série C) MUL 10 #0021 DM100 3300 0034 X 0021 = 714 CH 10 DM100= (CH 10) X 21

    edu.red

    DIVISIÓN BCD: DIV, FUN(33) (Série C) FUNCIÓN: DIVIDE EL CONTENIDO DE LOS DATOS ESPECIFICADOS EN LA INSTRUCCIÓN (EN BCD) Y EL RESULTADO SE TRANSFIERE A DOS REGISTROS (COCIENTE Y RESTO). DIV A B C A = DIVIDENDO R = COCIENTE B = DIVISOR R+1 = RESTO A, B = CANAL / CONSTANTE

    edu.red

    DIVISIÓN BCD: DIV, FUN(33) (Série C) DIV 10 #4 LR10 3300 133 CH 10 33 1 LR 10 LR 11 4 (CH 10) = (LR 10) X 4 + LR 11

    edu.red

    OPERACIONES ARITMETICAS (CS1)/1 -(410), -L(411), -C(412), -CL(413) – Resta Binaria +(400), +L(401), +C(402), +CL(403) – Suma Binaria +B(404), +BL(405), +BC(406), +BCL(407) – Suma BCD -B(414), -BL(415), -BC(416), -BCL(417) – Resta BCD +F(454) – Suma Coma Flotante +D(845) – Doble Suma en coma flotante -F(455) – Resta Coma Flotante -D(846) – Resta en coma flotante de doble precisión

    edu.red

    +(400) y +B(404) Suma 2 números binarios o BCD de 16 bits. Au: Palabra del primer sumando. Ad: Plabra del segundo sumando. R: Palabra del resultado. El rango para +(400) es de -32.768 a 32.767.Para +B(404) es de 0000 a 9999 (Gp:) +B(404) Au Ad R

    (Gp:) +(400) Au Ad R

    Binario BCD

    Partes: 1, 2
    Página siguiente