标签: assembly bit-shift att
我试图摆脱寄存器中的低位(在执行popcnt之前),但似乎无法正确获取指令的语法。我想从%rdx中的值中清除较低的%r8d位。搜索告诉我count参数应该是一个8位寄存器,所以我现在在:
popcnt
%rdx
%r8d
shrl %dl, %r8d
GAS抱怨这一点,我真的不知道如果错误的话应该是什么论点。
答案 0 :(得分:1)
根据英特尔PRM,您应该使用%cl代替%dl
%cl
%dl