SUB
Esta instrucción le resta el operando fuente al operando destino y guarda el resultado en el operando destino. El operando fuente no se modifica.
Los flags se modifican de la siguiente manera:
- Si el resultado es cero, entonces
Z=1. De lo contrario,Z=0. - Si la resta no entra en el operando destino, entonces
C=1. De lo contrario,C=0. - Si el el bit más significativo del resultado es
1, entoncesS=1. De lo contrario,S=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
O=1. De lo contrario,O=0.
Uso
vonsim
SUB dest, fuenteLas 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
Carga a registro
- REGISTRO a registro
0110_RxRy - Memoria (directo) a registro
0111_Rx00, dir - Memoria (indirecto
BL) a registro0111_Rx01 - Inmediato a registro
0111_Rx10, dato
Almacenar en memoria
- Registro a memoria (directo)
1000_00Ry, dir - Registro a memoria (indirecto
BL)1000_01Ry - Inmediato a memoria (directo)
1000_1100, dir, dato - Inmediato a memoria (indirecto
BL)1000_1101, dato
Rx o Ry: Índices de registros, número entre 0 y 3, cada índice es de 2 bits.
| Registro | Binario | Decimal |
|---|---|---|
| AL | 00 | 0 |
| BL | 01 | 1 |
| CL | 10 | 2 |
| DL | 11 | 3 |