使用 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
我正在尝试在 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