2013-04-01 73 views
0

我試圖擺脫寄存器中的低位(在做popcnt之前),但似乎無法獲得指令正確的語法。我想清除%r8d的值中較低的%rdx位。搜索告訴我計數參數應該是一個8位寄存器,所以目前我在:「後綴或操作數無效'shr'」

shrl %dl, %r8d 

GAS抱怨過這個問題,我真的不知道確切的參數應該是什麼,如果這些都是錯誤的。

+1

沒有BMI2,GPRS的變量的變化只能通過'cl'。 Haswell將擁有BMI2。 – harold

回答

1

據英特爾PRM,你應該使用%cl代替%dl

+0

......好吧,這是不直觀的,猜測我不應該略過那本手冊。謝謝。 – millimoose