2025-11-08 06:05:14
移位指令就是给数字的每一位往左或往右挪位置。比如把101左移一位变成1010,十进制就是10,刚好是原来的两倍;右移一位变成10,就是原来的五分之一。这跟算盘拨珠子一样,往左拨就是乘2,往右拨就是除2。汇编语言里常用这个操作,特别是处理内存数据或硬件控制的时候。
为啥是这个样子的呢?因为二进制每个位代表的是2的幂次方。比如最右边第一位是2的0次方(1),往左挪一位就变成2的1次方(2),再挪就是2的2次方(4)。所以左移一位相当于乘2,右移一位相当于除2。比如《汇编语言入门》第56页举的例子,用左移指令把3(二进制11)左移两位变成12(二进制1100),也就是十进制的12,正好是3乘4的结果。数据手册里也写着,移位次数超过位数会自动截断,比如8位移位9位还是0。汇编器会根据指令类型自动处理符号位,比如左移时如果最高位是1,结果会变成负数。所以掌握移位指令就能像玩积木一样灵活操作数字啦。
本题链接: