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位 |