移位指令可以可以将累加器1 的低字或整个累加器的内容进行左移或右移一定的位数。二进制数左移一位相当于将原数值乘以2。右移一位相当于将原数值除以2。
参数N 表示移位的次数。移出的空位根据不同的指令由0或符号位的状态填充。最后移出的位的状态同时被装入到状态字的CC1位,CC0和OV位被复位。
l SSI <number> 16位整数右移指令
l SSD <number> 32位整数右移指令
l SLW <number> 逻辑字左移指令
l SRW <number> 逻辑字右移指令
l SLD <number> 逻辑双字左移指令
l SRD <number> 逻辑双字右移指令
l 打开数据块
指令格式:OPN <data block>
说明:打开一个数据块作为shared数据块(DB)或者作为instance数据块(DI)。
可以同时打开一个shared数据块和一个instance数据块。
例 4.9.1: OPN DB 10 // 打开数据块DB 10作为shared数据块
L DB W35 // 将DB 10的数据字W35装入到累加器
1的低字。
T M W22 // 将累加器1的低字传输到M W22。
OPN DI 20 // 打开数据块DI 20作为instance数据块
L DI B12 // 将DI 20的数据字节B12装入到累加
器1的低字
T DB B37 // 将累加器1的低字传输到DB 10的字
节37中。
l 交换shared数据块和instance数据块
指令格式:CDB
说明:交换shared数据块和instance数据块。
shared数据块变成instance数据块,
instance数据块变成shared数据块。
l 装shared数据块的长度到累加器1
指令格式:L DBLG
说明:将shared数据块的长度装到累加器1。
l 装shared数据块的数目到累加器1
指令格式:L DBNO
说明:将shared数据块的数目装到累加器1。
l 装instance数据块的长度到累加器1
指令格式:L DILG
说明:将instance数据块的长度装到累加器1。
整数乘法指令(MUL-I)是:使能输入有效时,将两个16位符号整数相乘,并产生一个16位积,从OUT*的存储单元输出。
整数除法指令(DIV-I)是:使能输入有效时,将两个16位符号整数相除,并产生一个16位商,从OUT*的存储单元输出,不保留余数。如果输出结果大于一个字,则溢出位SM1.1置位为1。
双整数乘法指令(MUL-D):使能输入有效时,将两个32位符号整数相乘,并产生一个32位乘积,从OUT*的存储单元输出。
双整数除法指令(DIV-D):使能输入有效时,将两个32位整数相除,并产生一个32位商,从OUT*的存储单元输出,不保留余数。
整数乘法产生双整数指令(MUL):使能输入有效时,将两个16位整数相乘,得出一个32位乘积,从OUT*的存储单元输出。
整数除法产生双整数指令(DIV):使能输入有效时,将两个16位整数相除,得出一个32位结果,从OUT*的存储单元输出。其中高16位放余数,低16位放商。
整数乘除法指令格式如表5-15所示。
整数双整数乘除法指令操作数及数据类型和加减运算的相同。
整数乘法除法产生双整数指令的操作数:IN1/IN2:VW, IW, QW, MW, SW, SMW, T, C, LW, AC, AIW, 常量, *VD, *LD, *AC。数据类型:整数。
OUT:VD, ID, QD, MD, SMD, SD, LD, AC, *VD, *LD, *AC 。数据类型:双整数。
使ENO = 0的错误条件:0006(间接地址),SM1.1(溢出),SM1.3(除数为0)。
对标志位的影响:SM1.0(零标志位),SM1.1(溢出),SM1.2(负数),SM1.3(被0除)。