如何制作装配班次代码?

时间:2015-09-13 22:47:30

标签: assembly mips

我正在使用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
....

2 个答案:

答案 0 :(得分:0)

这称为 rotate 。由于mips没有旋转,因此您只需将其分解为(x >> 31) | (x << 1)即可。没有什么神奇的东西,我相信你没有问题将它转化为装配。

答案 1 :(得分:-1)

根据移位的类型,移位会用0或1填充“新”输入位。

您所描述的内容称为旋转指令。旋转指令将寄存器一端的位推入寄存器另一端的输入位。

用于左旋转,ror用于右旋转。

大多数MIPS汇编器为您实现旋转,但MIPS芯片本身没有内置的旋转指令。