2012-04-26 20 views
1
.text 
emitchar: 

lui $t0,0xffff 
polling: 
lw $t1,8($t0) 
andi $t1,$t1,0x0001 
beq $t1,$zero,polling 
sw $a0,0xc($t0)  

.data 

私はこれを行う方法であると言われましたが、ディスプレイとキーボードの追加でシミュレータを実行すると、まだ画面に出力されません。私は間違って何をしていますか?MIPSアセンブリから画面に印刷する方法

+0

一般的にMARSやMIPSについては分かりませんが、(1)メモリマップされたI/Oは2008年にMARSバージョン3.5に導入されたようです。あなたは本当に本当に古いバージョンを持っている可能性がありますか?(2)実際に呼び出されるあなたの 'emittar'ルーチンと、' $ a0'の中に何が入っているのかを整理しましたか?そして(3) 'emittar'の終わり?あなたが戻ったり、止まったり、出たり、何かのものがあってはいけませんか? –

+0

emittarは私のプログラムを通して呼び出される予定で、シミュレータの表示部分に文字を印刷することになっています。 $ a0は文字を保持するはずです。 – user977154

+0

右。だから、あなたはテスト時にそれをどう呼んでいるのですか?最後に 'jr $ ra'や何かがあるべきではないでしょうか? –

答えて

1

コードを開始した後にキーボードウィンドウで[Connect to MIPS]をクリックしましたか?ヘルプボタンから:

重要な注意:あなたは、スタンドアローンで(ボタン「MIPSへの接続」ツールのをクリックして「組み立て、ファイル名を指定して実行」する場合にのみ送信コントローラレディビットが1の初期値に設定されていますバージョン)またはツールのリセットボタン! MIPSプログラムを実行してMARSでリセットした場合、コントローラのReadyビットは0にクリアされます。上記のMMIOアドレスに格納されている値を直接観察できるように、MMIOアドレス範囲を表示するようにデータセグメントウィンドウを設定します。

+0

あなたは何を意味するのか分かりません。どのようにデータセグメントウィンドウを設定できますか? – user977154

+0

データセグメントウィンドウの下部では、メモリ範囲をMMIOに変更して、0xFFFF0000のメモリ範囲の内容を表示することができます。しかしこれはオプションです。要点は、キーボードウィンドウで[MIPSに接続]をクリックする必要があることです。これはコードが私のために働くようにします。 –

+0

ああ、私はそれが印刷されるはずの文字のASCII値を持っていることに気づいた。ディスプレイシミュレータに印刷しないのはなぜですか? – user977154

関連する問題