SimpleRisc程序可以找到多少种方式可以旋转32位数字以提供相同的数字

时间:2016-06-12 12:23:30

标签: assembly risc

考虑编写一个程序来查找可以通过多少种方式旋转32位数来给出相同的数字。

  mov R0, 1431655765   
  mov R6,R0   
  mov R5,31
  mov R4,0   
  .loop :  
     cmp R5,0 
     beq .exit  
     lsl R2,R0,31 
     lsr R0,R0,1 
     sub R5,R5,1 
     or R0,R0,R2 
     cmp R6,R0 
     beq .inc 
     b .loop 
  .inc : 
     add R4,R4,1 
     b  .loop 
  .exit: 
       .print R4 

虽然我总是得到0作为答案。我的逻辑中有错误吗?

这里.print指令在寄存器中打印该值。 lsl是合乎逻辑的左移 lsr是合乎逻辑的右移 b是无条件分支 beq是分支,如果等于

0 个答案:

没有答案