ASM x86 - 左移

1 assembly shift

我遇到了一个相当简单的问题(我认为)......这是我的代码:

    mov eax, 0b
    mov bl, 0b
    mov dl, BYTE PTR[esp + 4 + 3]

LOOP1:
    mov cl, dl// byte 1
    shl cl, bl
Run Code Online (Sandbox Code Playgroud)

当我调用 shl 时,我得到了一个不正确的操作数类型……我做错了什么?

Ira*_*ter 5

SHL 运算符只允许移位 1,或移位 CL 寄存器的内容。

也许你打算:

  SHL   BL, CL
Run Code Online (Sandbox Code Playgroud)

将 BL 寄存器移位 CL 中的数量。