【问题标题】:How to add an argument in MIPS assembly?如何在 MIPS 程序集中添加参数?
【发布时间】:2015-03-02 21:25:19
【问题描述】:

所以我在 MIPS 汇编中为我的 comp arch 类编写了一个简单的程序。我们现在需要增强这个程序,以便它接受两个参数。如果参数都相同,那么答案应该与只接受一个参数的原始程序的答案相同。如果它们不同,那么您应该根据上述情况弄清楚您的程序应该做什么。尝试进行尽可能少的更改。增强程序以允许它从键盘接收两个参数并在 SPIM 的控制台窗口中显示结果。如果任何输入参数为负数(小于零),您的增强程序应在控制台中显示零。

这是我未增强部分的代码:

.data   
arg:    .word   5

.text
.globl main
main:

la  $t3, arg    
lw  $t2, 0($t3) 
lw  $t3, 0($t3)

addi    $t1, $zero, 0
beqz    $t2, fin        
fori:

add $t1, $t1, $t2   
addi    $t3, $t3, -1

bnez    $t3, fori       

fin:

li  $v0, 10
syscall 

【问题讨论】:

  • 好的,如果有人能提供帮助,那就太好了。我知道如何创建一个论点。我只是这样做:arg1:.word 5 和 arg2:.word 5。但是我如何将其作为键盘输入?
  • mark gz 我还是迷路了,你能帮忙或找到一个类似的例子吗?

标签: assembly mips spim qtspim


【解决方案1】:

这是从键盘读取整数并将其存储在arg1 中的代码。

        .data
  arg1: .word 0
        .text
        li $v0, 5        # system call code for read int
        syscall          # read the int
        la $t0, arg1
        sw $v0, 0($t0)   # store the integer at location arg1

【讨论】:

  • 谢谢!所以我现在知道如何在控制台读取和写入整数,但我对如何将这种实现添加到现有程序感到困惑。有什么指点或建议吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多