SBB
Esta instrucción le resta el operando fuente al operando destino y guarda el resultado en el operando destino. Si CF=1
, entonces se resta 1
al resultado. El operando fuente no se modifica.
Los flags se modifican de la siguiente manera:
- Si la resta no entra en el operando destino, entonces
CF=1
. De lo contrario,CF=0
. - Si el resultado es cero, entonces
ZF=1
. De lo contrario,ZF=0
. - Si el el bit más significativo del resultado es
1
, entoncesSF=1
. De lo contrario,SF=0
. - Si la resta de un número positivo con un número negativo da un número negativo o la resta de un número negativo con un número positivo da un número positivo, entonces
OF=1
. De lo contrario,OF=0
.
Uso
vonsim
SBB dest, fuente
Las combinaciones válidas de dest, fuente son:
- Registro, registro
- Registro, dirección de memoria
- Registro, inmediato
- Dirección de memoria, registro
- Dirección de memoria, inmediato
(Ver tipos de operandos)
Codificación
- REGISTRO a registro
1000111w
,00RRRrrr
- Memoria (directo) a registro
1000111w
,01000rrr
, dir-low, dir-high - Memoria (indirecto) a registro
1000111w
,01010rrr
- Memoria (indirecto con desplazamiento) a registro
1000111w
,01100rrr
, desp-low, desp-high - Inmediato a registro
1000111w
,01001rrr
, dato-low, dato-high - Registro a memoria (directo)
1000111w
,11000rrr
, dir-low, dir-high - Registro a memoria (indirecto)
1000111w
,11010rrr
- Registro a memoria (indirecto con desplazamiento)
1000111w
,11100rrr
, desp-low, desp-high - Inmediato a memoria (directo)
1000111w
,11001000
, dir-low, dir-high, dato-low, dato-high - Inmediato a memoria (indirecto)
1000111w
,11011000
, dato-low, dato-high - Inmediato a memoria (indirecto con desplazamiento)
1000111w
,11101000
, desp-low, desp-high, dato-low, dato-high
Donde w
es el bit de tamaño de los operandos. w=0
indica operandos de 8 bits y w=1
operandos de 16 bits. Cuando w=0
, dato-high es obviado (la longitud de la instrucción es de un byte menos).
rrr
o RRR
codifica un registro según la siguiente tabla:
rrr | w=0 | w=1 |
---|---|---|
000 | AL | AX |
001 | CL | CX |
010 | DL | DX |
011 | BL | BX |
100 | AH | SP |
101 | CH | -- |
110 | DH | -- |
111 | BH | -- |