
-(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: CocientePalabra 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 enComa 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
Desplazamientoy 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
DESPLAZAMIENTOYROTACIÓNserie 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
Página siguiente |