首页 > 解决方案 > 使用python模拟发送用户输入到spim

问题描述

我正在尝试在 python 中编写一个可以运行 SPIM 并将用户输入发送到 SPIM 子例程的程序

我尝试使用

mips=subprocess("spim",stdin=PIPE, stdout=output.txt, stderr=output.txt)
mips.stdin.write(b"10")
mips.stdin.write(b"15")
mips.stdin.write(b"15")

但它完全跳过了等待用户输入

这是 mips 子例程应该做的事情

enter first value: 10
enter second value: 15
enter third value: 15
your Sum is: 40

当我从终端调用它并自己输入值时,这可以正常工作,但是如果我将它作为子进程运行,它会打印以下内容

enter first value: 
enter second value: 
enter third value: 
your Sum is: 101515

spim 执行完成后,101515 似乎正在打印

我该怎么做才能以编程方式将值输入到 spim 虚拟机中

如果它有帮助 SPIM 是 pts 而不是 tty

标签: mipsmips32qtspimspim

解决方案


要以编程方式将输入发送到 spin,请将值放在文本文件中并通过管道输入

每个值都换行

所以如果 mips 提示是

“输入字符串”

“输入数字”

文本文件必须如下所示,每个单独的输入都在自己的行中

我的字符串输入

127

在终端中输入以下内容

spim asm-name.s < input-file.txt


推荐阅读