MIPS将[0511]中的整数转换为倒序的3位八进制

MIPS将[0511]中的整数转换为倒序的3位八进制,mips,octal,Mips,Octal,我需要一些关于我的锻炼的帮助。 我已经创建了一个程序,我可以将[0,31]中的任何整数转换成5位二进制的倒序。这是密码 addi $9, $0, 27 addi $10, $0, 5 addi $2, $0, 1 L1: and $4, $9, $2 syscall srl $9, $9, 1 addi $10, $10, -1 bne $10, $0, L1 现在,我需要做同样的事情,但正如我在文章标题中提到的,将[0511]中的整数转换为逆序的3位八进制 请尽量简单。 我只是一个学生,不是

我需要一些关于我的锻炼的帮助。 我已经创建了一个程序,我可以将[0,31]中的任何整数转换成5位二进制的倒序。这是密码

addi $9, $0, 27
addi $10, $0, 5
addi $2, $0, 1
L1:
and $4, $9, $2
syscall
srl $9, $9, 1
addi $10, $10, -1
bne $10, $0, L1
现在,我需要做同样的事情,但正如我在文章标题中提到的,将[0511]中的整数转换为逆序的3位八进制

请尽量简单。
我只是一个学生,不是专家。

不是用掩码和1来隔离一个位,而是用7111二进制掩码来隔离一个八进制数字;类似地,与其将srl移位1位以删除已处理的二进制数字,不如将其移位3位以删除已处理的八进制数字。

首先感谢您的回答。我已将3d线替换为addi$2、$0、7,将第7行替换为srl$9、$9、3。当我在Mars中运行这个程序时,我得到一个MIPS键盘输入消息-输入一个双值syscall7;它们以前是相同的数字1,但现在不再是了。所以如果我理解正确,syscall无法从$2中获取值,因为值已从1更改为7?我要做什么来解决这个问题?syscall必须从$2中获取值,这就是它的写入方式,但是您可以为您的掩码使用不同的寄存器。