使用 python 模拟将用户输入发送到 spim

use python to simulate sending user input to 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

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

每个值占一行

所以如果 mips 提示是

“输入字符串”

“输入数字”

文本文件必须如下所示,每个单独的输入各占一行

我的字符串输入

127

然后在终端中输入以下内容

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