什么是PDP-11指令集?

2020-10-18 23:13:37

将操作对象的位向左旋转一个位置。最左边的位放在进位标志中,进位标志被复制到操作数的最右边的位(位0)。B 000 110 010 DDDDDD--ASR/ASRB算术右移字/字节将操作数的位右移一个位置。最左边的位被复制。其效果是执行带符号除以2.b000 11011DDDDDD--ASL/ASLB算术左移字/字节将操作数的位向左移位一个位置。最右边的位设置为零。其效果是执行带符号乘法2.b 000 110 100 DDDDDD--Mark/MTPS Mark/Move to Processor Status Mark被用作子例程调用/返回序列之一的一部分。操作数是参数的数量。诚然,Mark这样做有点隐晦:此外,为了使指令正常工作,必须将堆栈映射到i-space。MTPS仅在LSI-11上,用于将一个字节移动到处理器状态字。这是必需的,因为LSI-11不支持通过存储器地址访问寄存器。B 000 110 101 DDDDDD--MFPI/MFPD从上一版本移出。指令/数据将一个字从先前地址空间中的操作数地址推送到当前R6堆栈上,如PSW中所示。在不支持单独的指令和数据空间的PDP-11上,MFPD与MFPI被同等对待。B 000 110 110 DDDDDD--MTPI/MTPD移至先前指令/数据将一个字从PSW中指示的当前堆栈弹出到先前地址空间中的操作数地址,如PSW中指示的。在不支持单独的指令和数据空间的PDP-11上,MTPD被视为与MTPI相同。B 000 110 111 DDDDDD--SXT/MFP Sign Extension/Move from Processor Status SXT如果清除N(否定)标志,则将目标设置为0,如果设置了N,则设置为全1。这对于实现具有超过字大小的操作数的算术子例程很有用。MFPS将处理器状态字节复制到指定的寄存器。这只存在于LSI-11上,在那里需要,因为这些系统不支持通过内存地址访问寄存器。