*DAA *- Decimal Adjust for Addition

**Usage:** DAA

**Modifies Flags:** AF CF PF SF ZF (OF undefined)

Corrects result (in AL) of a previous BCD addition operation. Contents of AL are changed to a pair of packed decimal digits.

Clocks | ||||
---|---|---|---|---|

operands | 286 | 386 | 486 | Size Bytes |

none | 3 | 4 | 2 | 1 |

*DAS *- Decimal Adjust for Subtraction

**Usage:** DAS

**Modifies Flags:** AF CF PF SF ZF (OF undefined)

Corrects result (in AL) of a previous BCD subtraction operation. Contents of AL are changed to a pair of packed decimal digits.

Clocks | ||||
---|---|---|---|---|

operands | 286 | 386 | 486 | Size Bytes |

none | 3 | 4 | 2 | 1 |

*DEC *- Decrement

**Usage:** DEC dest

**Modifies Flags:** AF OF PF SF ZF

Unsigned binary subtraction of one from the destination.

Clocks | ||||
---|---|---|---|---|

operands | 286 | 386 | 486 | Size Bytes |

reg8 | 2 | 2 | 1 | 2 |

mem | 7 | 6 | 3 | 2-4 |

reg16/32 | 2 | 2 | 1 | 1 |

*DIV *- Divide

**Usage:** DIV src

**Modifies Flags:** (AF,CF,OF,PF,SF,ZF undefined)

Unsigned binary division of accumulator by source. If the source divisor is a byte value then AX is divided by "src" and the quotient is placed in AL and the remainder in AH. If source operand is a word value, then DX:AX is divided by "src" and the quotient is stored in AX and the remainder in DX.

Clocks | ||||
---|---|---|---|---|

operands | 286 | 386 | 486 | Size Bytes |

reg8 | 14 | 14 | 16 | 2 |

reg16 | 22 | 22 | 24 | 2 |

reg32 | 38 | 40 | 2 | |

mem8 | 17 | 17 | 16 | 2-4 |

mem16 | 25 | 25 | 24 | 2-4 |

mem32 | 41 | 40 | 2-4 |

[ TOC | Previous | NeXt | Winston's page ]