制作汇编程序来计算指数 - 我可以使用imul instuction和两个操作数使用相同的寄存器吗?
答案 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。