<<并且>>仅用于整数常量.这就是"标量值"的含义.您可以使用shl或shr指令移动寄存器中的值.它们用于分别向左或向右移位给定位数的寄存器中的值.
此示例中的第一行将ax左侧4位的值移位,这与将其乘以16相同.第二行将bx右侧的值移位2位,这与整数除以4相同.
shl ax, 4
shr bx, 2
Run Code Online (Sandbox Code Playgroud)
您还可以使用它cl来指示要移位的位数,而不是常量.有关这些和相关说明的详细信息,请参阅此页面.
小智 5
ughoavgfhw的答案上的小猪支持...使用<<和>>直接在常量上使用它们:
MOV EAX, 1 << 2 ; Puts 4 into EAX
MOV EAX, 2 << 2 ; Puts 8 into EAX
MOV EAX, 8 >> 1 ; Puts 4 into EAX
Run Code Online (Sandbox Code Playgroud)