尝试使用 Shift-Left 指令进行乘法运算。
的SHL (移位左)指令对所述目的地操作数的逻辑左移,填充的最低位为0。
我不明白如何为 N 使用寄存器或内存,因为当我尝试这样做时,我被告知“指令操作数无效”
EAX)。我的代码:
mov ebx, 1
call RequestNumber ; returns eax
shl ebx, eax
mov result, ebx
Run Code Online (Sandbox Code Playgroud)
我正在处理的任务要求使用 Shift 来获得结果 = 2^N 据我所知,您只能在此寄存器中使用 imm8 数字CL(尝试使用ECX具有相同结果的较低数字)。
问题:如果必须从用户那里获取N,如何正确使用Shift指令?