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
- Les drapeaux AF et CF sont du registre de drapeaux sont affecté et les drapeaux OF, PF, SF et ZF sont indéfinis.
- L'instruction DAA n'est pas support dans le Long Mode proposé par le mode 64 bits x86-64 de Intel 64 et AMD64.
Algorithme
MODULE DAA SI ( ( AL ∩ 0Fh ) > 9 U AF = 1 ) ALORS AL ← AL + 6 drapeau AF ← 1 SINON drapeau AF ← 0 SI ( ( AL > 9Fh) U CF = 1 ) ALORS AL ← AL + 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 :
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.