你能用imul自己来增加一个寄存器吗?

时间:2016-04-24 16:58:42

标签: assembly x86

制作汇编程序来计算指数 - 我可以使用imul instuction和两个操作数使用相同的寄存器吗?

1 个答案:

答案 0 :(得分:2)

是的,你可以。 imul ax,ax是一个非常好的指导。

  

ELSE IF(NumberOfOperands = 2)
  THEN
  temp←DEST * SRC(*有符号乘法; temp是双DEST大小
  DEST←DEST * SRC(
签名乘法*)
  如果temp≠DEST
  那么CF←1; OF←1;
  ELSE CF←0; OF←0; FI;

从操作算法中可以看出,由于CPU在乘法时使用 temp ,因此在乘法发生时不存在损坏单个寄存器的风险。如果 temp 不适合单个寄存器,则设置CF和OF。