我正在使用SIM-PL汇编程序(MIPS指令)并尝试制作此汇编代码。我需要将寄存器值移到1,但是当它到达最后一位时,它必须重新启动'并将值添加到第一位。我不知道如何开始这个。谁能帮我?
pattern = 110
Register value = 00......00000110
Register value = 00......00001100
Register value = 00......00011000
....
Register value = 11......00000000
Register value = 10......00000001
Register value = 00......00000011
....
答案 0 :(得分:0)
这称为 rotate 。由于mips没有旋转,因此您只需将其分解为(x >> 31) | (x << 1)
即可。没有什么神奇的东西,我相信你没有问题将它转化为装配。
答案 1 :(得分:-1)
根据移位的类型,移位会用0或1填充“新”输入位。
您所描述的内容称为旋转指令。旋转指令将寄存器一端的位推入寄存器另一端的输入位。
用于左旋转,ror用于右旋转。
大多数MIPS汇编器为您实现旋转,但MIPS芯片本身没有内置的旋转指令。