我很难找出movslq
指令的作用。谷歌不是很有帮助,这个列表上也没有这样的说明。在这里我读过
MOVSLQ 将值从 32 位源移动并符号扩展至 64 位目标。
我是这样理解的。该指令将一个值从 32 位源移动到 64 位目标,但确保 64 位目标中的数字的有符号值等于源中的数字,即在负数的情况下它填充前 32 位目的地为 1,否则为 0。
我的理解正确吗?如果没有,请解释我错在哪里。
编辑:
这不是这个主题的重复: assembly cltq and movslq difference。我的问题没有任何解释。你必须阅读整个答案 10 分钟才能说服自己。