Da der Prozessor keine speziellen Befehle für die Bearbeitung von BCD - Zahlen kennt, entstehen bei der Anwendung der - eigentlich für Binärzahlen gedachten - Befehle zwangsläufig Fehler. Nach einer arithmetischen Operation, die auf zwei BCD - Zahlen angewandt wird, ist daher eine Korrektur notwendig. Dafür gibt es entsprechende Befehle der 8086/88 - CPU.
Da es allerdings zwei Unterformate der BCD - Zahlen gibt, nämlich das gepackte und das ungepackte Format, müssen auch zwei verschiedene Korrekturbefehle für diese Unterformate vorhanden sein. Die Bezeichnungen \"ASCII - Korrektur\" und \"Dezimal - Korrektur\" sollen hier erklärt werden : Da eine ungepackte BCD - Zahl durch Addition von Dezimal 48 in den entsprechenden ASCII - Code umgewandelt werden kann, wird sie auch als \"ASCII - Dezimalzahl\" bezeichnet. Das gepackte Format dagegen wird in diesem Zusammenhang als Dezimalzahl bezeichnet. Daher die Anfangsbuchstaben der Korrekturbefehle : \"A\" für \"ASCII\" bzw. \"D\" für \"Dezimal\".
Der Syntax aller nun folgenden Befehle ist gleich. Alle erwarten ihren Operanden im Register AX. Bei Berechnungen mit BCD - Zahlen sollte bei den vorangehenden Arithmetikbefehlen als Zieloperand also immer AX angegeben werden. Syntax für die Befehle AAA, DAA, AAS, DAS, AAM, AAD ist also : .
|