SUB AX, loc16
6-338
SUB AX, loc16 Subtract Specified Location From AX
SYNTAX OPTIONS OPCODE OBJMODE RPT CYC
SUB AX, loc16 1001 111A LLLL LLLL X − 1
Operands AX Accumulator high (AH) or accumulator low (AL) register
loc16 Addressing mode (see Chapter 5)
Description Subtract the 16−bit content of the location pointed to by the “loc16”
addressing mode from the specified AX register (AH or AL) and store the
results in AX:
AX = AX − [loc16];
Flags and
Modes
N
After the subtraction, AX is tested for a negative condition. If bit 15 of AX is 1,
then the negative flag bit is set; otherwise it is cleared.
Z
After the subtraction, AX is tested for a zero condition. The zero flag bit is set
if the operation generates AX = 0, otherwise it is cleared
C
If the subtraction generates a borrow, C is cleared; otherwise C is set.
V
If an overflow occurs, V is set; otherwise V is not affected. Signed positive
overflow occurs if the result crosses the max positive value (0x7FFF) in the
positive direction. Signed negative overflow occurs if the result crosses the
max negative value (0x8000) in the negative direction.
Repeat This instruction is not repeatable. If this instruction follows the RPT
instruction, it resets the repeat counter (RPTC) and executes only once.
Example
; Subtract the contents of VarA with VarB and store in VarC
MOV AL,@VarA ; Load AL with contents of VarA
SUB AL,@VarB ; Subtract from AL contents of VarB
MOV @VarC,AL ; Store result in VarC