AAM Unterricht in 8086
Ich bin neu mit 8086 und ich brauche ein wenig Hilfe.
Ich weiß, die basic von AAM.
dass ich, wenn ich mehrere zwei keine.s angenommen, 07H und 09H
MUL AL,BL
AAM
diese speichern den Wert 06H in AH und 03H AL.
Aber angenommen gelten, wenn AAM auf einen Wert von 3 hexadezimal-bits, Nehme
MOV AL,77H
MOV BL,0AH
MUL BL
AAM
Was wird der Inhalt von AL auf letzten ?
- Nur mit einem debugger, und versuchen Sie es. Ich bekomme ax = 01d06h 77*0a und aam, das ist keine gültige BCD-Ergebnis.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Also Frage ist, was wird es tun, wenn wir
Al
größeren Wert als99
?Wird es nicht die gleichen
AH = AL /10
undAL = AL mod 10
aber lassen falsche ungepackte bcd-Werte.So Kommen Sie zu Ihrem Fall
vor
AAM
AL
wird166 (0xA6)
(AX
wird0x04A6
nach multiplizieren)nach
AAM
Wie wir sehen
AX
wird0x1006
nachAAM
Und so ging es falsche
unpacked bcd number
. Da war der Eingang nicht unten100
ASCII Adjust after Multiplication(AAM):
Korrigiert das Ergebnis der Multiplikation von zwei BCD
Werte.
Algorithmus:
AH = AL /10
AL = Rest
Beispiel:
MOV AL, 15 ; //AL = 0Fh
AAM ; //AH = 01, AL = 05
RET