有一些关于指令如何工作的算法的信息:
if low nibble of AL > 9 or AF = 1 then:
AL = AL + 6
AH = AH + 1
AF = 1
CF = 1
else
AF = 0
CF = 0
in both cases:
clear the high nibble of AL.
Example:
MOV AX, 15 ; AH = 00, AL = 0Fh
AAA ; AH = 01, AL = 05
RET
Run Code Online (Sandbox Code Playgroud)
但是我面临的问题是当我用 00FF 和 00FA 之类的数字替换上面示例中的 15 时,AH 中的值会增加 02 而不是 01 !
为什么会有这些变化??