操作碼 |
指令 |
說明 |
99 |
CWD |
DX:AX sign-extend of AX |
99 |
CDQ |
EDX:EAX EAX 的符號擴充套件 |
通過符號擴充套件將暫存器 AX 或 EAX(具體取決於運算元的大小)中運算元的大小加倍,結果分別儲存到暫存器 DX:AX 或 EDX:EAX。CWD 指令將 AX 暫存器中值的符號(位 15)複製到 DX 暫存器的每個位,請參閱“IA-32 英特爾(R) 體系結構軟件開發人員手冊”第 1 卷的“圖 6-5”。CDQ 指令將 EAX 暫存器中值的符號(位 31)複製到 EDX 暫存器的每個位。
CWD 指令可用於在執行字除法之前使用字產生雙字被除數;CDQ 指令可用於在執行雙字除法之前使用雙字產生四字被除數。
CWD 與 CDQ 助記符引用相同的操作碼。CWD 指令旨在用於運算元大小屬性為 16 時;CDQ 指令旨在用於運算元大小屬性為 32 時。某些彙編器可能在使用 CWD 時強制運算元大小為 16,而在使用 CDQ 時強制運算元大小為 32。其它彙編器可能將這些助記符看作同義詞 (CWD/CDQ),並使用運算元大小屬性的當前設定確定要轉換的值的大小,而不管使用的助記符如何。
IF OperandSize 16 (* CWD instruction *)
THEN DX SignExtend(AX);
ELSE (* OperandSize 32, CDQ instruction *)
EDX SignExtend(EAX);
FI;
無。
無。