r/m[8|16|32] - 1 -> r/m[8|16|32]
Subtracts 1 from the operand. Does not change the carry flag. To change the carry flag, use the sub instruction with an immediate value of 1.
Subtract 1 from the 8-bit contents of the effective address (addressed by the ESI register plus an offset of 1):
Subtract 1 from the 16-bit contents of the BX register:
Subtract 1 from the 32-bit contents of the effective address (addressed by the EDI register plus an offset of 4):