AAS
ASCII 减法后调整 AL
stableVMJITAOTinstruction
编码
| 操作码 | 指令 | Op/En | 64 位 | 兼容/传统 | 说明 |
|---|---|---|---|---|---|
3F | AAS | ZO | 无效 | 有效 | ASCII 在减法后调整 AL. |
实测开销
未实测:不在 64 位处理器上运行。
涉及的标志位
CF进位PF奇偶AF辅助进位ZF零SF符号OF溢出
说明
调整两个解开的 BCD 值的减值结果,以创建一个解开的 BCD 结果。 AL登记册是本指令的隐含来源和目标操作数. AAS指令只有在遵循SUB指令时才有用,该指令从另一个指令中减去一个解开的BCD值,并将一个字节结果存储在AL寄存器中. AAA指令随后调整了AL寄存器的内容,以包含正确的1位无包装的BCD结果.
如果减法产生十进制载荷,则AH的寄存器减值为1,CF和AF的旗子被设定. 如果没有小数携带,则清除CF和AF旗,AH登记册不变. 无论是哪种情况,AL寄存器都留有其前四位设置为0.
此指令以兼容模式和遗留模式执行 。 在64位模式下无效 。
行动
IF 64-bit mode
THEN
#UD;
ELSE
IF ((AL AND 0FH) > 9) or (AF = 1)
THEN
AX := AX 6;
AH := AH 1;
AF := 1;
CF := 1;
AL := AL AND 0FH;
ELSE
CF := 0;
AF := 0;
AL := AL AND 0FH;
FI;
FI;受影响的旗帜
如果借到十进制的话, AF 和 CF 旗被设定为 1; 否则, 它们将被清除为 0 。 OF, SF, ZF,和PF的旗帜没有定义.
异常
保护模式
#UD | 如果使用 LOCK 前缀 。 |
实地址模式
| 与保护模式相同的例外. |
虚拟 8086 模式
| 与保护模式相同的例外. |
兼容模式
| 与保护模式相同的例外. |
64 位模式
#UD | 如果在64位模式下. |