SUBSX
– Referencia del Lenguaje Ensamblador
SUBSX
instrucción: Resta el valor signado mas C de otro valor signado.
SUBSX
SValue1,
SValue2
#
Resultado: La diferencia de signado SValue1, y signado SValue2 mas la bandera C, se
almacena en SValue1.
SValue1
(campo-d) es el registro que contiene el valor a restar de SValue2 mas C, y es
el destino en el cual se escribe el resultado.
SValue2
(campo-s) es un registro o literal 9-bit cuyo valor mas C se resta de SValue1.
Tabla Opcode:
–INSTR– ZCRI –CON–
–DEST–
110111 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_0001; -2,147,483,647
$8000_0001; -2,147,483,647
$7FFF_FFFF; 2,147,483,647
$7FFF_FFFF; 2,147,483,647
Explicación
SUBSX
(Subtract Signed, Extended) resta el valor signado de SValue2 mas C de SValue1, y
almacena el resultado en el registro SValue1. La instrucción
restas signadas multi-long; restas de 64-bit, por ejemplo:
En una operación signada multi-long, la primera instrucción es no signada (Ej.:
cualquier instrucción intermedia es no signada, extendida (Ej.:
Page 366 · Propeller Manual v1.1
–SRC–
Resultado Z
Z & (D–(S+C) = 0)
Entrada
Fuente
Z C Efectos
$0000_0001; 1
$0000_0001; 1
$0000_0001; 1
$FFFF_FFFF; -1
$FFFF_FFFF; -1
$FFFF_FFFF; -1
$0000_0001; 1
$0000_0001; 1
$FFFF_FFFF; -1
$FFFF_FFFF; -1
Resultado C
Signed Overflow
Destino
wz wc
0 0
$0000_0000; 0
wz wc
1 0
$0000_0000; 0
wz wc
x 1
$FFFF_FFFF; -1
wz wc
0 0
$0000_0000; 0
wz wc
1 0
$0000_0000; 0
wz wc
x 1
$FFFF_FFFF; -1
wz wc
x 0
$8000_0000; -2,147,483,648 0
wz wc
x 1
$7FFF_FFFF; 2,147,483,647 0
wz wc
x 0
$8000_0000; -2,147,483,648 0
wz wc
x 1
$7FFF_FFFF; 2,147,483,647 0
SUBSX
se usa para desarrollar
SUBX
), t la ultima instrucción
Resultado
Ciclos
Written
4
Salida
Z C
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
SUB
),