Assembly x86程序集编程(GAS语法)`shl'的操作数类型不匹配
我试图将存储在EAX寄存器中的数字移位为存储在EBX寄存器中的数量。但是,当我尝试使用以下shift语句执行程序时:Assembly x86程序集编程(GAS语法)`shl'的操作数类型不匹配,assembly,x86,bit-manipulation,bit-shift,att,Assembly,X86,Bit Manipulation,Bit Shift,Att,我试图将存储在EAX寄存器中的数字移位为存储在EBX寄存器中的数量。但是,当我尝试使用以下shift语句执行程序时: shll %ebx, %eax 我在编译时检索到以下错误: 错误:“shl”的操作数类型不匹配 据我所知,将寄存器引用作为参数传入应该是移位函数的正确用法。x86指令中的移位计数必须是常量或%cl寄存器中的移位计数。您不能使用任何其他寄存器进行移位计数。%ebx既不是常数也不是%cl,因此您会得到一个错误 显示shl的可用形式 如果您可以假设支持BMI2扩展,shlx%ebx,
shll %ebx, %eax
我在编译时检索到以下错误:
错误:“shl”的操作数类型不匹配
据我所知,将寄存器引用作为参数传入应该是移位函数的正确用法。x86指令中的移位计数必须是常量或%cl寄存器中的移位计数。您不能使用任何其他寄存器进行移位计数。%ebx既不是常数也不是%cl,因此您会得到一个错误 显示shl的可用形式
如果您可以假设支持BMI2扩展,shlx%ebx,%eax,%eax允许移位计数为任意寄存器,并且在英特尔CPU上更快 x86指令中的移位计数必须是常量或%cl寄存器中的移位计数。您不能使用任何其他寄存器进行移位计数。%ebx既不是常数也不是%cl,因此您会得到一个错误 显示shl的可用形式
如果您可以假设支持BMI2扩展,shlx%ebx,%eax,%eax允许移位计数为任意寄存器,并且在英特尔CPU上更快 由于该问题是该消息搜索引擎的热门问题之一:立即轮班计数所需的语法为:shr$13,%ebx
在这里找到它:因为这个问题是该消息的最热门搜索引擎之一:立即移位计数所需的语法是:shr$13,%ebx 在这里找到:我想他们在AT&T语法中尝试使用ebx作为移位计数第一个操作数。但除此之外,你的答案是正确的。我认为他们尝试使用ebx作为AT&T语法中的移位计数第一个操作数。但除此之外,你的答案是正确的。