ASM'sall'命令单一参数?

时间:2015-02-04 23:42:11

标签: assembly

sall指令,格式为

sall  Src,Dest 

转换为Dest by Src的左移

Dest=Dest<<Src

但我不知道这是什么:

   sall    -8(%ebp)

我认为它的移位-8(%ebp)会离开,但会有多少?

1 个答案:

答案 0 :(得分:2)

documentation

中所述
SAL r/m32, 1

表示:

Multiply r/m32 by 2, once.

您的汇编程序似乎不需要, 1,因为它很容易推断。

我刚刚在这里做了一个快速测试,并检查出来:

    .globl f
f:
   sall -8(%ebp)
   sall $1, -8(%ebp)

组装和反汇编:

$ otool -tV example.o 
example.o:
(__TEXT,__text) section
f:
0000000000000000    shll    -0x8(%ebp)
0000000000000004    shll    -0x8(%ebp)
$ otool -t example.o
example.o:
(__TEXT,__text) section
0000000000000000 67 d1 65 f8 67 d1 65 f8 

请注意,两个操作码都是相同的。