Section courante

A propos

Section administrative du site

Assembleur 80x86

DAA

INTEL 8088+ Decimal Adjust for Addition

Syntaxe

DAA

Description

Cette instruction corrige après coup les retenues lors de la manipulation de valeur DCB. Pour y parvenir, la commande convertit le contenu dans le registre AL en une valeur DCB compactée (même chose dans le registre AL).

Remarques

Algorithme

MODULE DAA
   SI ( ( AL ∩ 0Fh ) > 9 U AF = 1 ) ALORS
      ALAL + 6
      drapeau AF ← 1
   SINON
      drapeau AF ← 0
      SI ( ( AL > 9Fh) U CF = 1 ) ALORS
         ALAL + 60h
         drapeau CF ← 1
      SINON
         drapeau CF ← 0
      FIN SI
   FIN SI

Mnémonique

Instruction Opcode Description
DAA 27h Ajuste les décimal du registre AL (invalide en mode 64 bits)

Exceptions

Message Mode réel Virtuel 8086 Mode protégé Description
#UD(Opcode invalide)     X Cette instruction est exécuté en mode 64-bits

Exemple

L'exemple suivant permet de charger le BCD 1234h et le BCD 3099h et de calculer le résultat :

  1. MOV DX,1234h
  2. MOV BX,3099h
  3. MOV AL,BL   
  4. ADD AL,DL   
  5. DAA

Voir également

Instruction assembleur 80x86 - Instruction DAS

Références

Le livre d'Or PC, Martin Althaus, 1992, ISBN: 2-7361-0934-1, page 810
AMD64 Architecture Programmer's Manual Volume 3: General-Purpose and System Instructions, Edition Advanced Micro Devices, Revision 3.14, September 2007, Publication No. 24594, page 105.
Intel® 64 and IA-32 Architectures Software Developer’s Manual Volume 2A: Instruction Set Reference, A-M, Edition Intel, Mars 2010, Publication No. 253666-034US, page 351 à 352.

Dernière mise à jour : Vendredi, le 5 septembre 2014