N端指移动的位数,循环不表示这个指令的循环,而是指溢出的位并不丢失,而是被补充到另一端。
这个指令其实和加法等其他指令一样,每个周期执行一次(当然是EN接通的时候),因为一般我们输入和输出写的是不一样的地址,每次执行都是把同一个输入移位后传送给输出,输入并不改变,因此多执行其实结果是一样的。除非你输入和输出写一个地址,才需要考虑执行次数的问题。
这就好像加法,如果输入和输出没有相同的地址,我们不需要关心它执行的次数,只有当某个数加一再写回同一地址,才会考虑次数的问题,这时如果EN一直接通,这个数就会每个程序扫描周期都加1,而快速增大。
这是一个双字右循环指令,里面的N表示一次移动多少位,en为使能输入,前面可以加一个条件,当信号为1时,开始循环。为0时停止循环。希望能帮到你!