2009-06-02 7 views
1

私はSICアセンブラをコーディングしましたが、I/Oを除いてすべてが正常に動作しているようです。SICアセンブラI/O

私はオブジェクトコードをメモリにロードしました(機械式に変換されたchar形式)が、私はSICRun()を呼び出します。コードを実行するには、「devf1が見つかりません」というエラーが表示されます。

私はこれがソースコード内の入出力デバイスの命令に関連していることを知っています。
cファイルには、外部ファイル、特にDev [6]に依存することが記載されています。私はこれを自分で作りますか?私のインストラクターは他のファイルを私たちに教えてくれませんでした。どんな洞察?

例:TD出力、ディレクトリは、ソースコード(source.asm)、ヘッダファイル(sic.h)が含ま

Thisテスト出力装置及びSICシミュレータ(sicengine.c)から

答えて

3

sicengine.cソースファイルは、それがdevf1(またdev2/dev3)ファイル(パラメータとして"r"が渡されfopen)から読み取ることができるので、この「入力装置」に存在すると予想されているかのように見える:

if (opcode == 216) { /* RD */ 
    /* ... */ 
    if ((Dev[Devcode] = fopen(SICFile[Devcode],"r")) == NULL) { 
     printf("cannot open file %s\n", SICFile[Devcode]); 
     exit(1); 
    } 

ファイル内のコメントDev[6]はあいまいです。これは実際にdevf1,devf2およびdevf3(入力デバイス)およびdevf04,devf05およびdevf05(出力デバイス)のファイルDevのファイルの名前を意味します。

ファイルdevf1,devf1devf3を作成することをお勧めします。

+0

完璧!これはうまくいった。 –