SUMNC
instrucción: Suma un valor signado con otro cuyo signo se invierte dependiendo de !C.
SUMNC
SValue1,
SValue2
#
Resultado: La suma de un signado SValue1 y ±SValue2 se almacena en SValue1.
SValue1
(campo-d) es el registro que contiene el valor de la suma con –SValue2 o
SValue2, y es el destino donde se almacena el resultado.
SValue2
(campo-s) es un registro o literal 9-bit cuyo valor es afectado en signo por !C
y se suma a SValue1.
Tabla Opcode:
–INSTR– ZCRI –CON–
–DEST–
100101 001i 1111 ddddddddd sssssssss
Tabla de verdad:
Destino
$0000_0001; 1
$0000_0001; 1
$0000_0001; 1
$FFFF_FFFF; -1
$FFFF_FFFF; -1
$FFFF_FFFF; -1
$8000_0000; -2,147,483,648
$8000_0000; -2,147,483,648
$8000_0000; -2,147,483,648
$7FFF_FFFF; 2,147,483,647
$7FFF_FFFF; 2,147,483,647
$7FFF_FFFF; 2,147,483,647
Explicación
SUMNC
(Sum with !C-affected sign) suma el valor signado de SValue1 a SValue2 (si C = 1) o a
–SValue2 (si C = 0) y almacena el resultado en SValue1.
Si se especifica el efecto
WC
especifica el efecto
, la bandera C se active si el resultado de la suma en un sobre flujo
signado. El resultado se escribe en SValue1 a menos que el efecto
3: Referencia del Lenguaje Ensamblador –
–SRC–
Resultado Z
D ± S = 0
Entrada
Fuente
$0000_0001; 1
$0000_0001; 1
$FFFF_FFFF; -1
$FFFF_FFFF; -1
$FFFF_FFFF; -1
$0000_0001; 1
$0000_0001; 1
$0000_0001; 1
$FFFF_FFFF; -1
$FFFF_FFFF; -1
$FFFF_FFFF; -1
$0000_0001; 1
WZ
, la bandera Z se activa (1) si SValue1 ± SValue2 es cero. Si se
Resultado C
Signed Overflow
Z C Efectos
Destino
wz wc
- 0
$0000_0000; 0
wz wc
- 1
$0000_0002; 2
wz wc
- 1
$0000_0000; 0
wz wc
- 0
$0000_0000; 0
wz wc
- 1
$FFFF_FFFE; -2
wz wc
- 1
$0000_0000; 0
wz wc
- 0
$7FFF_FFFF; 2,147,483,647 0
wz wc
- 1
$8000_0001; -2,147,483,647 0
wz wc
- 1
$7FFF_FFFF; 2,147,483,647 0
wz wc
- 0
$8000_0000; -2,147,483,648 0
- 1
wz wc
$7FFF_FFFE; 2,147,483,646 0
wz wc
- 1
$8000_0000; -2,147,483,648 0
NR
se especifique.
Propeller Manual v1.1 · Page 371
SUMNC
Resultado
Ciclos
Written
4
Salida
Z C
1
0
0
0
1
0
1
0
0
0
1
0
1
0
1
1
0
1