汇编代码问题

0 assembly mips

我想要一个程序,它接受用户的 2 个输入,并使用加法相互相乘(例如 3*2 加 2 三次),但我不知道它有什么问题。提前致谢

.text    
.globl main
main:
  li           $v0, 5                       # Code for read int.
  syscall                                   # Ask the system for service.
  move         $s0, $v0                     # Copy to safer location.

  # Ask for another number.
  li           $v0, 5                       # Code for read int.
  syscall                                  # Ask the system for service.

loop:
  add  $s0,$s0,$s0
  addi $v0,$v0,-1
  bne $v0,$zero,loop                                  

  li      $v0, 1
  syscall                                 # print out actual sum
  li      $v0, 10                         # Code for program exit.
  syscall
Run Code Online (Sandbox Code Playgroud)

wal*_*lyk 5

你认为有什么add $s0,$s0,$s0作用?

它的数量增加了一倍。如果迭代计数为 6,则它将第一个值加倍六倍。

这是作业吗?如果是这样,请将该标签添加到问题中。

  • 将 6 加倍六次得到 6, 12, 24, 48, 96, 192, 384,最终结果为 384。不是 36。 (2认同)