2025-11-08 06:05:10
移位操作就是数据往左或往右挪动一位,结果存在操作数寄存器里。比如指令里写SHL AX, 1,就是左移一位,结果存在AX里。寄存器是CPU里的临时存储单元,专门存移位后的数据。
为什么结果存在操作数寄存器?因为移位指令的格式是"MOV 目标寄存器, 源寄存器 SHL 码值"。比如MOV AX, BX SHL 1,先取BX里的数,左移一位后放进AX。手册说8086的移位指令必须指定目标寄存器,比如CLD指令清方向标志,结果在CX里。实际测试发现,如果漏写目标寄存器,汇编器会报错。比如试写SHL BX,会提示"缺少目标操作数"。所以必须明确写哪个寄存器接收结果,就像往抽屉里放东西,得指定抽屉编号。
本题链接: