Está en la página 1de 72

Son operaciones que permiten realizar cálculos aritméticos utilizando

operandos del tipo palabra, en algunos casos el resultado de la


operación es transferido a otra palabra (destino). Las operaciones
aritméticas son las siguientes:

Adición: Operación donde se suman dos operandos digitales.

Sustracción: Operación donde se restan dos operandos digitales.

Multiplicación: Operación donde se multiplica dos operandos digitales.


División: Operación donde se divide dos operandos digitales.

Raíz cuadrada: Operación donde se obtiene la raíz cuadrada de un


operando digital.
EJEMPLO DE APLICACIÓN DE LAS OPERACIONES ARITMÉTICAS

Para entender mejor el principio de funcionamiento, lo explicaremos a


través del siguiente ejemplo:

DESCRIPCION TECNOLOGICA:

El valor de un contador C1, al cual se puede pre-setear al valor de 10 a


través de una señal de entrada S1Q, como también aumentar y
decrementar por medio de las entradas S2Q y S3Q respectivamente, se
desea realizar operaciones aritméticas con el valor actual del contador,
tales como:

•Sumar el valor de 5 y transferirlo a la palabra 10.

•Restar el valor de 5 y transferirlo a la palabra 12.

•Multiplicar por 2 y transferirlo a la palabra 14.


•Dividirlo entre 2 y transferirlo a la palabra 16.

Finalmente, considerar en el contador una entrada de reset gobernado


por S0Q.

Se pide:

1. LISTA DE ORDENAMIENTO

ENTRADAS

2. DIAGRAMA DE FUNCIONES
Partes: 1, 2

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 
 

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 
 

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 
 

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 
 

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 
 

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 poderdetectar si alguno de
los datos A o B no está en formato BCD. Utilizar el CARRY en las
instrucciones suma. 
 

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 
 

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 
 

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 
 

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 
 

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 
 

+(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
 

-(410) y -B(414) Resta 2 números binarios o BCD de 16 bits. Mi: Palabra


del Minuendo. Su: Palabra del Sustraendo. R: Palabra del resultado. El
rango para +(400) es de -32.768 a 32.767.
Para +B(404) es de 0000 a 9999. Si el resultado es negativo, el acarreo
se activa y el complemento a 10 del resultado actual es puesto en R
(Gp:) -B(414) Mi Su R (Gp:) -(410) Mi Su R 
 

+, - Ejemplo (Gp:) +(400) D00000 D00001 D00100 (Gp:) -(410) D00000


D00001 D00100 (Gp:) D00000 0000 0000 0110 0000 96 D00001 0000
0000 0010 0000 32 D00100 0000 0000 1000 0000 128 D00100 0000
0000 0100 0000 64 
 

+B, -B Ejemplo (Gp:) +B(404) D00000 D00001 D00100 (Gp:) -B(414)


D00000 D00001 D00100 (Gp:) D00000 0000 0000 0110 0000 60 D00001
0000 0000 0010 0000 20 D00100 0000 0000 1000 0000 80 D00100 0000
0000 0100 0000 40 0 0 6 0 0 0 8 0 0 0 4 0 0 0 2 0 
 

OPERACIONES ARITMETICAS (CS1)/2 *(420), *L(421), *U(422),


*UL(423) - Multiplicación Binaria *B(424), *BL(425) - Multiplicación BCD
*F(456) - Multiplicación Coma Flotante *D(847) - Multiplicación en coma
flotante doble /(430), /L(431), /U(432), /UL(433) - División Binaria /B(434),
/BL(435) - División BCD /F(457) - División Coma Flotante /D(848) -
División en coma flotante doble 
 

*(420) y *B(424) Multiplica 2 números binarios o BCD de 16 bits. Md:


Palabra del Multiplicando. Mr: Palabra del Multiplicador. R: Palabra del
Resultado. El resultado ocupa dos Palabras R y R+1 (Gp:) *B(424) Md Mr
R (Gp:) *(420) Md Mr R 
 

/(430) y /B(434) Multiplica números binarios o BCD de 16 bits. Dd:


Primera palabra del Dividendo. Dr: Primera palabra del Divisor. R:
Primera palabra del Resultado. El resultado ocupa dos Palabras R y R+1
Palabra R: Cociente
Palabra R+1: Resto (Gp:) /B(434) Dd Dr R (Gp:) /(430) Dd Dr R 
 

*, / Ejemplo (Gp:) *(420) D00000 D00001 D00100 (Gp:) /(430) D00000


D00001 D00100 (Gp:) D00000 0000 0000 0110 0000 96 D00001 0000
0000 0010 0000 32 (Gp:) D00100 0000 1100 0110 0000 3072 D00101
0000 0000 0000 0000 0 (Gp:) D00100 0000 0000 0000 0011 3 D00101
0000 0000 0010 0000 0 
 

*B, /B Ejemplo (Gp:) *B(424) D00000 D00001 D00100 (Gp:) /B(434)


D00000 D00001 D00100 (Gp:) D00000 0000 0000 0110 0000 60 D00001
0000 0000 0010 0000 20 (Gp:) D00100 0001 0010 0000 0000 1200
D00101 0000 0000 0000 0000 0 (Gp:) D00100 0000 0000 0000 0011 3
D00101 0000 0000 0010 0000 0 0 0 6 0 1 2 0 0 0 0 0 3 0 0 2 0 
 

Instrucciones en
Coma Flotante SubNúmeros reales en coma flotante. 
 

Números en Coma Flotante Se pueden expresar los números: -? (e=255,


f=0, s=0) -3.402823·1038 ÷ -1.175494·10-38 0 (e=0) 1.175494·10-38 ÷
3.402823·1038 ? (e=255, f=0, s=1) NaN (e=255, f?0): Número no válido.
No es necesario conocer el formato de estos números, sólo que ocupan
32 bits. 
 

Precauciones Coma Flotante Las operaciones indeterminadas


0.0/0.0, ?/?, ?-? dan como resultado NaN. Overflow (±?) y Underflow
(±0). Es más peligroso el Overflow al convertir el resultado a entero
(binario con signo). Los decimales se truncan al convertirlos a entero
(binario con signo). Cualquier operación con un NaN como operando da
como resultado NaN. 
 

IEEE754 Expresan números reales en 32 bits conforme al estándar


IEEE754: f: Mantisa 23 bits bit 0 al 22 e: Exponente 8 bits bit 23 al 30 s:
Signo 1 bit bit 31 (-1)s·2e-127·(1+f·2-23)
1#10000000#11000000000000000000000 Signo: (-1)1= -1 Exponente:
2128-127=21=2 Mantisa: 1+6291456·2-23=1+0.75=1.75 Resultado:
-1.75·2= -3.5 
 

Instrucciones Coma Flotante Se pueden realizar las siguientes:


Conversión: FIX, FIXL, FLT, FLTL Operaciones: +F, -F, *F, /F, SQRT,
PWR Conversiones angulares: RAD, DEG Angulares: SIN, COS, TAN,
ASIN, ACOS, ATAN En base e: LOG, EXP Los operandos deben ser Nos
en formato coma flotante IEEE754. No es necesario conocer este
formato, sólo que ocupan 32 bits. 
 

FIX(450) Convierte un número en coma flotante a un entero (binario con


signo) de 16 bits. S: Primera palabra de número en coma flotante. R:
Palabra donde se guarda el resultado. La parte decimal es truncada
(3.5 ? 3) Rango de -32.768 ÷ 32.767. (Gp:) FIX(450) S R (Gp:)
@FIX(450) S R 
 

FIXL(451) Convierte un número en coma flotante a un entero (binario con


signo) de 32 bits. S: Primera palabra de número en coma flotante. R:
Primera palabra donde se guarda el resultado. La parte decimal es
truncada (-3.5 ? -3) Rango de -2.147.482.648÷2.147.482.647. (Gp:)
FIXL(451) S R (Gp:) @FIXL(451) S R 
 

FIX, FIXL Ejemplo (Gp:) FIXL(451) D00002 D00102 (Gp:) FIX(450)


D00000 D00100 -58.720.256 (Gp:) D00000 0000000000000000 D00001
0100000001100000 D00100 0000000000000011 (Gp:) D00002
0000000000000000 D00003 1100110001100000 D00102
0000000000000000 D00103 1111110010000000 3.5 3 -58.720.256 
 

FLT(452) Convierte un número entero (binario con signo) de 16 bits en


formato de coma flotante de 32 bits. S: Palabra del número entero. R:
Primera palabra del resultado. Rango de -32.768 ÷ 32.767. (Gp:)
FLT(452) S R (Gp:) @FLT(452) S R 
 

FLTL(453) Convierte un número entero (binario con signo) de 32 bits en


formato de coma flotante de 32 bits. S: Primera palabra del número
entero. R: Primera palabra del resultado. Rango de
-2.147.482.648÷2.147.482.647. Números > 16.777.215 pierden precisión.
(Gp:) FLTL(453) S R (Gp:) @FLTL(453) S R 
 

FLT, FLTL Ejemplo (Gp:) FLTL(453) D00102 D00002 (Gp:) FLT(452)


D00100 D00000 -58.720.256 (Gp:) D00000 0000000000000000 D00001
0100000001000000 D00100 0000000000000011 (Gp:) D00002
0000000000000000 D00003 1100110001100000 D00102
0000000000000000 D00103 1111110010000000 3 3 -58.720.256 
 

+F(454) Suma 2 números en coma flotante de 32 bits. Au: Primera


palabra del primer sumando. Ad: Primera palabra del segundo sumando.
R: Primera palabra del resultado. El resultado puede ser ?, -?, 0, NaN.
Tener en cuenta: ? - ? = NaN y que NaN+número=NaN. (Gp:) @+F(454)
Au Ad R (Gp:) +F(454) Au Ad R 
 

-F(455) Resta 2 números en coma flotante de 32 bits. Mi: Primera


palabra del Minuendo. Su: Primera palabra del Sustraendo. R: Primera
palabra del resultado. El resultado puede ser ?, -?, 0, NaN. Tener en
cuenta: ? - ? = NaN y que NaN-número=NaN, número-NaN=NaN. (Gp:)
@-F(455) Mi Su R (Gp:) -F(455) Mi Su R 
 

+F, -F Ejemplo (Gp:) +F(454) D00000 D00002 D00100 (Gp:) -F(455)


D00000 D00002 D00100 (Gp:) D00100 0000 0000 0000 0000 D00101
1100 0000 0010 0000 -2.5 (Gp:) D00000 0000 0000 0000 0000 D00001
0100 0000 0110 0000 3.5 D00002 0000 0000 0000 0000 D00003 0100
0000 1100 0000 6 (Gp:) D00100 0000 0000 0000 0000 D00101 0100
0001 1110 0000 9.5 3.5 - 6 3.5 +6 
 

*F(456) Multiplica 2 números en coma flotante de 32 bits. Md: Primera


palabra del Multiplicando. Mr: Primera palabra del Multiplicador. R:
Primera palabra del Resultado. El resultado puede ser ?, -?, 0, NaN.
Tener en cuenta: 0·? = NaN y que NaN·número=NaN. (Gp:) @*F(456)
Md Mr R (Gp:) *F(456) Md Mr R 
 

/F(457) Multiplica 2 números en coma flotante de 32 bits. Dd: Primera


palabra del Dividendo. Dr: Primera palabra del Divisor. R: Primera
palabra del Resultado. El resultado puede ser ?, -?, 0, NaN. Tener en
cuenta: 0/0 = NaN, ?/? = NaN y que NaN/número=NaN,
número/NaN=NaN. (Gp:) @/F(457) Dd Dr R (Gp:) /F(457) Dd Dr R 
 

*F, /F Ejemplo (Gp:) *F(456) D00000 D00002 D00100 (Gp:) /F(457)


D00000 D00002 D00100 (Gp:) D00100 0101 0101 0101 0101 D00101
0011 1111 0101 1010 0.583333 (Gp:) D00000 0000 0000 0000 0000
D00001 0100 0000 0110 0000 3.5 D00002 0000 0000 0000 0000
D00003 0100 0000 1100 0000 6 (Gp:) D00100 0000 0000 0000 0000
D00101 0100 0001 1011 0000 21 3.5 ÷ 6 3.5 * 6 
 

OPERACIONES LÓGICAS
ENTRE PALABRAS 
 

ANDW(34) y @ANDW(34) REALIZA LA OPERACIÓN LOGICA "AND"


BIT A BIT ENTRE LOS 16 BITS CONTENIDOS DE DOS CANALES Op1
y Op2 Y PONE EL RESULTADO EN OTRO CANAL Res. SI EL
RESULTADO ES 0000, SE ACTIVA EL INDICADOR DE "EQUAL" P_EQ
= ON LOS PARÁMETROS DE LA INSTRUCCION SON 3: Op1:Entrada 1
CIO, W, H, A, T, C, D, E, E?_, @D, @E, @E?_, *D, *E, *E?_, #, DR, ,IR
Op2:Entrada 2 CIO, W, H, A, T, C, D, E, E?_, @D, @E, @E?_, *D, *E,
*E?_, #, DR, ,IR Res:Resultado CIO, W, H, A, T, C, D, E, E?_, @D, @E,
@E?_, *D, *E, *E?_, DR, ,IR Op1 0101 0101 0101 0101 Op2 1111 1111
0000 0000 Res 0101 0101 0000 0000 (Gp:) BORRAR 
 

ORW(35) y @ORW(35) REALIZA LA OPERACIÓN LOGICA "OR" BIT A


BIT ENTRE LOS 16 BITS CONTENIDOS DE DOS CANALES Op1 y Op2
Y PONE EL RESULTADO EN OTRO CANAL Res. SI EL RESULTADO
ES 0000, SE ACTIVA EL INDICADOR DE "EQUAL" P_EQ = ON LOS
PARÁMETROS DE LA INSTRUCCION SON 3: Op1:Entrada 1 CIO, W,
H, A, T, C, D, E, E?_, @D, @E, @E?_, *D, *E, *E?_, #, DR, ,IR
Op2:Entrada 2 CIO, W, H, A, T, C, D, E, E?_, @D, @E, @E?_, *D, *E,
*E?_, #, DR, ,IR Res:Resultado CIO, W, H, A, T, C, D, E, E?_, @D, @E,
@E?_, *D, *E, *E?_, DR, ,IR Op1 0101 0101 0101 0101 Op2 1111 1111
0000 0000 Res 1111 1111 0101 0101 (Gp:) ACTIVAR 
 

XORW(36) y @XORW(36) REALIZA LA OPERACIÓN LOGICA "XOR"


BIT A BIT ENTRE LOS 16 BITS CONTENIDOS DE DOS CANALES Op1
y Op2 Y PONE EL RESULTADO EN OTRO CANAL Res. SI EL
RESULTADO ES 0000, SE ACTIVA EL INDICADOR DE "EQUAL" P_EQ
= ON LOS PARÁMETROS DE LA INSTRUCCION SON 3: Op1:Entrada 1
CIO, W, H, A, T, C, D, E, E?_, @D, @E, @E?_, *D, *E, *E?_, #, DR, ,IR
Op2:Entrada 2 CIO, W, H, A, T, C, D, E, E?_, @D, @E, @E?_, *D, *E,
*E?_, #, DR, ,IR Res:Resultado CIO, W, H, A, T, C, D, E, E?_, @D, @E,
@E?_, *D, *E, *E?_, DR, ,IR Op1 0101 0101 0101 0101 Op2 1111 1111
0000 0000 Res 1010 1010 0101 0101 (Gp:) INVERTIR (Gp:) BUSCAR
BITs DIFERENTES 
 

XNORW(37) y @XNORW(37) REALIZA LA OPERACIÓN LOGICA "XOR


NEGADA" BIT A BIT ENTRE LOS 16 BITS CONTENIDOS DE DOS
CANALES Op1 y Op2 Y PONE EL RESULTADO EN OTRO CANAL Res.
SI EL RESULTADO ES 0000, SE ACTIVA EL INDICADOR DE "EQUAL"
P_EQ = ON LOS PARÁMETROS DE LA INSTRUCCION SON 3:
Op1:Entrada 1 CIO, W, H, A, T, C, D, E, E?_, @D, @E, @E?_, *D, *E,
*E?_, #, DR, ,IR Op2:Entrada 2 CIO, W, H, A, T, C, D, E, E?_, @D, @E,
@E?_, *D, *E, *E?_, #, DR, ,IR Res:Resultado CIO, W, H, A, T, C, D, E,
E?_, @D, @E, @E?_, *D, *E, *E?_, DR, ,IR Op1 0101 0101 0101 0101
Op2 1111 1111 0000 0000 Res 0101 0101 1010 1010 (Gp:) INVERTIR
(Gp:) BUSCAR BITs IGULES 
 

COM(29) y @COM(29) REALIZA LA OPERACIÓN LOGICA


"NEGACION" (COMPLEMENTO) BIT A BIT ENTRE LOS 16 BITS
CONTENIDOS EN EL CANAL Op1 Y PONE EL RESULTADO EN EL
MISMO CANAL. SI EL RESULTADO ES 0000, SE ACTIVA EL
INDICADOR DE "EQUAL" P_EQ = ON LOS PARÁMETROS DE LA
INSTRUCCION SON: Op1:Entrada 1 CIO, W, H, A, T, C, D, E, E?_, @D,
@E, @E?_, *D, *E, *E?_, DR, ,IR Op1 0101 0101 0101 0101 Res(Op1)
1010 1010 1010 1010 
 

Desplazamiento
y rotación SubDe todos o N bits en una y dos palabras 
 

Desplazamiento y rotación (Gp:) 1 Canal 2 Canales Desplazamiento


ASL(025) ASLL(570) ASR(026) ASRL(571) Rotación ROL(027)
ROLL(572) ROR(028) RORL(573) Rotación sin RLNC(574) RLNL(576)
Carry RRNC(575) RRNL(577) 
 

De N bits (Gp:) 1 Canal 2 Canales Desplazamiento NASL(580)


NSLL(582) de N bits NASR(581) NSRL(583) Desplazamiento NSFL(578)
de N bits como dato NSFR(579) 
 

NASL(580) Desplaza la palabra D, N bits a la izquierda insertando 0, ó


el valor del bit 0. D: Palabra origen y destino. C: palabra
de control (insertar 0, Nº de bits) (Gp:) NASL(580) D C (Gp:)
@NASL(580) D C 
 

NASL(580) ejemplo (Gp:) 15 12 7 0 (Gp:) Nº de bits a desplazar en


hexadecimal 00.10Hex. (Gp:) Siempre a 0. (Gp:) Dato que se introduce
por la derecha: 0: introduce 0. 8: introduce el valor que tenga el bit 0.
(Gp:) C: Palabra de control. (Gp:) NASL(580) 0100 #0004 (Gp:) 0 0 0 1 1
0 0 1 1 1 1 1 0 0 0 0 (Gp:) 1 0 1 1 0 0 0 1 1 0 0 1 1 1 1 1 (Gp:) 0 (Gp:) 1
(Gp:) CY (Gp:) Perdidos CH 100 ? 
 

NSLL(582) Desplaza las palabras D y D+1, N bits a la izquierda


insertando 0, ó el valor del bit 0. D: Primera palabra origen y destino. C:
palabra de control (insertar 0, Nº de bits) Como NASL(580) pero de dos
palabras. (Gp:) NSLL(582) D C (Gp:) @NSLL(582) D C 
 

NASR(581) Desplaza la palabra D, N bits a la derecha insertando 0, ó el


valor del bit 15. D: Palabra origen y destino. C: palabra de control
(insertar 0, Nº de bits) (Gp:) NASR(581) D C (Gp:) @NASR(581) D C 
 

NASR(581) ejemplo (Gp:) 15 12 7 0 (Gp:) Nº de bits a desplazar en


hexadecimal 0-10Hex. (Gp:) Siempre a 0. (Gp:) Dato que se introduce
por la izquierda. 0: introduce 0. 8: introduce el valor que tenga el bit 15.
(Gp:) C: Palabra de control. (Gp:) NASR(581) 0100 #0004 0 0 0 0 1 0 1 1
0 0 0 1 1 0 0 1 1 0 1 1 0 0 0 1 1 0 0 1 1 1 1 1 0 1 CY Perdidos ?CH 100 
 

NSRL(583) Desplaza las palabras D y D+1, N bits a la derecha


insertando 0, ó el valor del bit 15. D: Primera palabra origen y destino. C:
palabra de control (insertar 0, Nº de bits) Como NASR(581) pero de dos
palabras. (Gp:) NSRL(583) D C (Gp:) @NSRL(583) D C 
 

NSFL(578) Desplaza N bits de D a la izquierda empezando por el bit C.


D: Palabra dato. C: Bit de comienzo. N: Número de bits a desplazar. Los
bits anteriores a C o posteriores a C+N no cambian. @NSFL(578) D C R
(Gp:) NSFL(578) D C R 
 

NSFR(579) Desplaza N bits de D a la derecha empezando por el bit C. D:


Palabra dato. C: Bit de comienzo. N: Número de bits a desplazar. Los bits
anteriores a C+N o posteriores a C no cambian. @NSFL(578) D C R
(Gp:) NSFL(578) D C R 
 

NSFL NSFR ejemplo (Gp:) NSFR(579) 0100 &3 &11 (Gp:) NSFL(578)
0100 &3 &11 (Gp:) 1 0 1 0 0 0 1 1 0 0 1 1 0 1 1 1 (Gp:) 1 0 1 1 0 0 0 1 1 0
0 1 1 1 1 1 (Gp:) 0 (Gp:) 1 (Gp:) CY (Gp:) 1 0 1 0 1 0 0 0 1 1 0 0 1 1 1 1
(Gp:) 1 0 1 1 0 0 0 1 1 0 0 1 1 1 1 1 (Gp:) 0 (Gp:) 1 (Gp:) CY Bits 3 a 12
Bits 3 a 12 CH 100 ? ?CH 100 
 

Incrementar Decrementar SubAutoincremento y Autodecremento 


 

++(590) ++L(591) ++ incrementa en binario la palabra de 4 dígitos Wd en


una unidad. ++L incrementa en binario la palabra de 8 dígitos Wd en una
unidad. Wd: Palabra a incrementar (Gp:) @++L(591) Wd (Gp:) ++L(591)
Wd (Gp:) @++(590) Wd (Gp:) ++(590) Wd 
 

--(592) --L(593) -- decrementa en binario la palabra de 4 dígitos Wd en


una unidad. --L decrementa en binario la palabra de 8 dígitos Wd en una
unidad. Wd: Palabra a incrementar (Gp:) @--L(593) Wd (Gp:) --L(593)
Wd (Gp:) @--(592) Wd (Gp:) --(592) Wd 
 

Binario Ejemplos (Gp:) --L(593) D00000 (Gp:) --(592) D00000 (Gp:) +


+L(591) D00000 (Gp:) ++(590) D00000 (Gp:) D0 D0 001A -1 0019 (Gp:)
D0 D0 0019 +1 001A (Gp:) D0 D1 D0 D1 001A 0000 -1 0019 FFFF (Gp:)
D0 D1 D0 D1 0019 FFFF +1 001A 0000 
 

++B(594) ++BL(595) ++B incrementa en BCD la palabra de 4 dígitos Wd


en una unidad. ++BL incrementa en BCD la palabra de 8 dígitos Wd en
una unidad. Wd: Palabra a incrementar (Gp:) @++BL(595) Wd (Gp:) +
+BL(595) Wd (Gp:) @++B(594) Wd (Gp:) ++B(594) Wd 
 

--B(596) --BL(597) --B decrementa en BCD la palabra de 4 dígitos Wd en


una unidad. --BL decrementa en BCD la palabra de 8 dígitos Wd en una
unidad. Wd: Palabra a incrementar (Gp:) @--BL(597) Wd (Gp:) --BL(597)
Wd (Gp:) @--B(596) Wd (Gp:) --B(596) Wd 
 

BCD Ejemplos (Gp:) --BL(597) D00000 (Gp:) --B(596) D00000 (Gp:) +


+BL(595) D00000 (Gp:) ++B(594) D00000 (Gp:) D0 D0 0020 -1 0019
(Gp:) D0 D0 0019 +1 0020 (Gp:) D0 D1 D0 D1 0020 0000 -1 0019 9999
(Gp:) D0 D1 D0 D1 0019 9999 +1 0020 0000 
 

DESPLAZAMIENTO
Y
ROTACIÓN
serie C y CS1 Sub1Bit Y Dígitos (4 bits) 
 

Desplaza BITS: ASL(025) ASR(026) ASL(025) introduce un 0 y desplaza


un bit a la izquierda el contenido de un canal. ASR(026) introduce un 0 y
desplaza un bit a la derecha el contenido de un canal. El bit saliente pasa
al Flag de carry (CY) (Gp:) ASR(026) Wd (Gp:) ASL(025) Wd 
 

Rotar BITS: ROL(027) ROR(028) ROL(025) Rota un bit a la izquierda un


canal pasando el bit15 al CY y el CY al bit0 ROR(026) Rota un bit a la
derecha un canal pasando el bit0 al CY y el CY al bit15 La rotación
siempre es a través del Carry (Gp:) ROR(028) Wd (Gp:) ROL(027) Wd 
 

Desplaza Digito: SLD(074) SRD(075) SLD(074) introduce cuatro 0 y


desplaza un Digito a la izquierda un canal. SRD(075) introduce cuatro 0 y
desplaza un Digito a la derecha un canal. St: Canal inicial E: Canal final
DATO PERDIDO DATO PERDIDO

https://instrumentacionycontrol.net/programacion-de-plcs-operaciones-aritmeticas/

También podría gustarte