2012-04-22 158 views
1

我使用「spim」仿真器來模擬mips體系結構。它的工作方式是,我應該首先有一個「filename.asm」文件,然後在bash中鍵入「spim」來打開spim的命令行解釋器,然後我可以使用spim命令來加載文件並運行它,打開另一個命令行解釋器並輸入命令

我想寫一個python腳本,打開spim命令行解釋器,並開始在其中鍵入spim命令。這可能嗎?

謝謝。

回答

1

這將取決於SPIM,這我不熟悉的,但如果你能管的東西,你可以做同樣在Python

退房http://docs.python.org/library/subprocess.html

像這樣的東西將讓你開始:

proc = subprocess.Popen('spim',shell = True,stdin = subprocess.PIPE) 
proc.stdin.write("Hello world") 
0
from subprocess import Popen, PIPE, STDOUT 

# Open Pipe to communicate with spim process. 
p = Popen(['spim'], stdout=PIPE, stdin=PIPE, stderr=STDOUT, shell=True) 

# Write a "step 1" command to spim. 
p.stdin.write('step 1\n') 
p.stdin.close() 

# Get the spim process output. 
spim_stdout = p.stdout.read() 
print(spim_stdout) 
+1

您可以通過花時間來解釋你做了什麼使這更有助於在OP和未來SO'ers。 – 2014-05-08 18:00:23

+0

如果您需要迭代地與spim進程進行通信,此代碼不能解決問題。 總是創建一個新的進程實例。當你發送「step 1」命令時,spim執行第一行。 解決方法是發送「步驟1」,「步驟2」,「步驟3」並考慮標準輸出結果的最後一行。 有人知道python的方式,以保持一個開放的渠道與另一個進程? (我需要spim像一個「jit」執行命令的命令,但是在python子進程中。) – 2014-05-08 20:12:44