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 poder detectar 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
Página siguiente |