【问题标题】:MIPS Program Arguments in MARSMARS 中的 MIPS 程序参数
【发布时间】:2019-02-26 01:40:17
【问题描述】:

如何在提供给 MIPS 的程序参数中传递和存储两个字符串? 我到处寻找,但不知道从哪里开始。 我如何知道/存储输入的程序参数的数量以及字符串参数的含义?

【问题讨论】:

    标签: mips mars-simulator


    【解决方案1】:

    official documentation 对此进行了解释:

    为 MIPS 程序提供程序参数。默认值为 false。 3.5 版中的新功能。
    如果选中,文本字段将出现在文本段显示的顶部。程序执行时此文本字段中的任何参数值都将在执行前存储在 MIPS 内存中。
    参数计数 (argc) 将放置在寄存器 $a0 中,并且数组的地址包含参数 (argv) 的以 null 结尾的字符串将被放置在寄存器 $a1 中。这些值也可用于运行时堆栈 ($sp)。

    此设置位于 Mars 的“设置”菜单下。

    【讨论】:

    • 感谢您的信息。我现在可以打印参数的数量和 $a1 的地址,但想打印内容。我将如何打印 $a1 地址中的内容?我在程序参数中有“Flex 是一只兔子”。
    • 您编写了一个循环,从$a1+i*4 中提取lws,然后将该值传递给print_string 系统调用。重复argc 次。
    • 感谢您的建议。我可以打印内容。我现在正在尝试读取 2sc 8 位二进制字符串 (0b00001111) 并将其转换为有符号值。 link 我已经想出了如何做到这一点,但需要想办法在不使用某些系统调用的情况下打印值:1、5、12、34、35 和 36。是否可以将 int 存储在注册并在没有系统调用的情况下打印它?
    猜你喜欢
    • 2018-12-13
    • 2022-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多