【发布时间】:2014-04-16 12:42:19
【问题描述】:
我正在尝试在 NASM 64 位中使用 AAD 指令,但它在编译时显示错误:
错误:64 位模式不支持指令
有没有办法在 64 位模式下仍然可以使用该指令? 还有其他我应该注意的等效指令吗?
【问题讨论】:
我正在尝试在 NASM 64 位中使用 AAD 指令,但它在编译时显示错误:
错误:64 位模式不支持指令
有没有办法在 64 位模式下仍然可以使用该指令? 还有其他我应该注意的等效指令吗?
【问题讨论】:
AAD 指令在 64 位模式下无效,但其操作在 Intel 的软件开发人员手册中有说明,因此您可以根据需要自行实现相同的功能:
tempAL ← AL;
tempAH ← AH;
AL ← (tempAL + (tempAH ∗ imm8)) AND FFH;
(* imm8 is set to 0AH for the AAD mnemonic.*)
AH ← 0;
SF、ZF 和 PF 标志根据 AL 寄存器中生成的二进制值设置; OF、AF 和 CF 标志 未定义。
【讨论】: