SUBS
instrucción: Resta dos valores signados.
SUBS
SValue1,
SValue2
#
Resultado: La diferencia del signado SValue1 y el signado SValue2 se almacena en Value1.
SValue1
(campo-d) es el registro que contiene el valor a restar de SValue2, y es el
destino en el cual se escribe el resultado.
SValue2
(campo-s) es un registro o literal de 9-bit cuyo valor se resta de SValue1.
Tabla Opcode:
–INSTR– ZCRI –CON–
–DEST–
110101 001i 1111 ddddddddd sssssssss
Tabla de verdad:
Destino
$0000_0001; 1
$0000_0001; 1
$FFFF_FFFF; -1
$FFFF_FFFF; -1
$8000_0001; -2,147,483,647
$8000_0001; -2,147,483,647
$7FFF_FFFE; 2,147,483,646
$7FFF_FFFE; 2,147,483,646
Explicación
SUBS
resta el signado SValue2 del signado SValue1 y almacena el resultado en el registro
SValue1.
Si se especifico el efecto
Si se especifico el efecto
sobre flujo signado. El resultado se escribe en SValue1 a menos que se especifique el efecto
NR
.
Para restar signados, valores multi-long, use
SUBSX
en Pág. 366 para mayor información.
3: Referencia del Lenguaje Ensamblador –
–SRC–
Resultado Z
D - S = 0
Entrada
Fuente
$0000_0001; 1
$0000_0002; 2
$FFFF_FFFF; -1
$FFFF_FFFE; -2
$0000_0001; 1
$0000_0002; 2
$FFFF_FFFF; -1
$FFFF_FFFE; -2
, la bandera Z se activa (1) si SValue1 − SValue2 es igual a cero.
WZ
WC
, la bandera C se activa (1) si el resultado de la resta resulta en un
SUB
, posiblemente
Resultado C
Signed Overflow
Z C Efectos
Destino
wz wc
- -
$0000_0000; 0
wz wc
- -
$FFFF_FFFF; -1
wz wc
- -
$0000_0000; 0
wz wc
- -
$0000_0001; 1
- -
wz wc
$8000_0000; -2,147,483,648 0
wz wc
- -
$7FFF_FFFF; 2,147,483,647 0
wz wc
- -
$7FFF_FFFF; 2,147,483,647 0
wz wc
- -
$8000_0000; -2,147,483,648 0
SUBX
, y finalmente
Propeller Manual v1.1 · Page 365
SUBS
Resultado
Ciclos
Written
4
Salida
Z C
1
0
0
0
1
0
0
0
0
1
0
1
SUBSX
. Ver