mips程序的代码转换
我想知道是否有人能帮我找到一个简单的解决方案。我在汇编中有一个程序,它从0-31开始计算小数,从第五位开始计算二进制数。我想将程序转换为二进制计数0-31,并在控制台中以正常计数从右数字开始显示它。以下是第一个代码:mips程序的代码转换,mips,Mips,我想知道是否有人能帮我找到一个简单的解决方案。我在汇编中有一个程序,它从0-31开始计算小数,从第五位开始计算二进制数。我想将程序转换为二进制计数0-31,并在控制台中以正常计数从右数字开始显示它。以下是第一个代码: main: addi $9,$0,27 #example number addi $10,$0,5 addi $2,$0,1 L1: and $4,$9,$2 syscall srl $9,$9,1 addi
main:
addi $9,$0,27 #example number
addi $10,$0,5
addi $2,$0,1
L1:
and $4,$9,$2
syscall
srl $9,$9,1
addi $10,$10,-1
nbe $10,$0,L1
end
提前谢谢你 刚刚找到它:
.data
.text
main:
addi $9,$0,23
addi $10,$0,5
addi $2,$0,1
sll $8,$2,4
Loop1:
and $4,$8,$9
srl $4,$4,4
syscall
sll $9,$9,1
addi $10,$0,-1
bne $10,$0, Loop1
.end main
那么你的问题是什么?没有人会为你做所有的事情,但是如果你有一个特定的问题阻碍你完成这个任务,那么请说明它是什么。这个未注释的代码应该做什么,它在做什么?提示:有一个
srlv
指令(尽管解决这个问题的方法不止一种).这段代码在屏幕上显示了一个二进制数,从'00000'开始,0'10000'开始,1'01000'结束,直到31。我想反转它,程序将显示1'00001',2'00010'结束时的确切二进制数,使用诸如移位之类的简单指令,我不需要十进制到二进制的完整代码。只需要一个提示,说明使用哪种逻辑移位,以及什么样的逻辑指令是“and”和“or”。我刚开始学Mips。谢谢你,迈克尔,我会试试的。