Pdp11:ASH - ikarishinjieva/unixV6-code-analyze-chs GitHub Wiki
instruction
===Instruction===ASH
===Code===072RSS
===Operation===R ← R的二进制形式向左/向右移动NN位
NN = (src)二进制形式的低6位
===Coden===若 运算结果<0,则置位
否则,清位
===Codez===若 运算结果=0,则置位
否则,清位
===Codev===若 按位移动过程中,寄存器符号位改变,则置位
否则,清位
===Codec===等于 最后一位移出寄存器的数位
===Description=== 根据源地址的数据,将目标寄存器的数据按位向左/向右移动指定位数
移动位数 = (src)二进制形式的低6位,范围为 -32..31
移动位数为负,移动方向向右
移动位数为正,移动方向向左
===Example===
向左移动模式
向右移动模式
<caption><b>移动方式举例</b></caption>
(src)二进制形式的低六位 | 移动动作 |
---|---|
011111 | 左移31位 |
000001 | 左移1位 |
111111 | 右移1位 |
100000 | 右移32位 |
ASH_R0_,_R3