我正在尝试寻找使用imull的替代方法,因此出现了一个问题。
QBRequest
对%eax的影响是否与sall $2, %eax
相同,确切地说应该乘以4?
答案 0 :(得分:2)
您是对的,sall $2, %eax
将eax
乘以 4 ,即它将寄存器eax
的位置移两位左边。
请注意,sal
和shl
实际上是同义词,而sar
和shr
不是。对于向左的移位,在 signed 和 unsigned 之间没有区别。
在您的情况下,您只是将寄存器的位移到了 left ,要移位的操作数的符号无关紧要,因为最高有效位(即符号位)不需要解释为右算术移位。