Pdp11:ASHC - ikarishinjieva/unixV6-code-analyze-chs GitHub Wiki

===Instruction===ASHC ===Code===073RSS ===Operation===R,R∨1 ← R,R∨1 双字长数据的二进制形式向左/向右移动NN位
NN = (src)二进制形式的低6位 ===Coden===若 运算结果<0,则置位
否则,清位 ===Codez===若 运算结果=0,则置位
否则,清位 ===Codev===若 按位移动过程中,寄存器符号位改变,则置位
否则,清位 ===Codec===始终等于被移出寄存器的数位 ===Description=== 根据源地址的数据,将目标寄存器(及其后继寄存器)的数据按位向左/向右移动指定位数
移动位数 = (src)二进制形式的低6位,范围为 -32..31
移动位数为负,移动方向向右
移动位数为正,移动方向向左
若 寄存器选取奇地址寄存器,则R,RV1指向同一寄存器,移位方向若为右移,则相当于单个字长寄存器循环移位 ===Example===

向左移动模式


向右移动模式


移动方式举例

(src)二进制形式的低六位 移动动作
011111 左移31位
000001 左移1位
111111 右移1位
100000 右移32位
⚠️ **GitHub.com Fallback** ⚠️