.text
emitchar:
lui $t0,0xffff
polling:
lw $t1,8($t0)
andi $t1,$t1,0x0001
beq $t1,$zero,polling
sw $a0,0xc($t0)
.data
私はこれを行う方法であると言われましたが、ディスプレイとキーボードの追加でシミュレータを実行すると、まだ画面に出力されません。私は間違って何をしていますか?MIPSアセンブリから画面に印刷する方法
.text
emitchar:
lui $t0,0xffff
polling:
lw $t1,8($t0)
andi $t1,$t1,0x0001
beq $t1,$zero,polling
sw $a0,0xc($t0)
.data
私はこれを行う方法であると言われましたが、ディスプレイとキーボードの追加でシミュレータを実行すると、まだ画面に出力されません。私は間違って何をしていますか?MIPSアセンブリから画面に印刷する方法
コードを開始した後にキーボードウィンドウで[Connect to MIPS]をクリックしましたか?ヘルプボタンから:
重要な注意:あなたは、スタンドアローンで(ボタン「MIPSへの接続」ツールのをクリックして「組み立て、ファイル名を指定して実行」する場合にのみ送信コントローラレディビットが1の初期値に設定されていますバージョン)またはツールのリセットボタン! MIPSプログラムを実行してMARSでリセットした場合、コントローラのReadyビットは0にクリアされます。上記のMMIOアドレスに格納されている値を直接観察できるように、MMIOアドレス範囲を表示するようにデータセグメントウィンドウを設定します。
あなたは何を意味するのか分かりません。どのようにデータセグメントウィンドウを設定できますか? – user977154
データセグメントウィンドウの下部では、メモリ範囲をMMIOに変更して、0xFFFF0000のメモリ範囲の内容を表示することができます。しかしこれはオプションです。要点は、キーボードウィンドウで[MIPSに接続]をクリックする必要があることです。これはコードが私のために働くようにします。 –
ああ、私はそれが印刷されるはずの文字のASCII値を持っていることに気づいた。ディスプレイシミュレータに印刷しないのはなぜですか? – user977154
一般的にMARSやMIPSについては分かりませんが、(1)メモリマップされたI/Oは2008年にMARSバージョン3.5に導入されたようです。あなたは本当に本当に古いバージョンを持っている可能性がありますか?(2)実際に呼び出されるあなたの 'emittar'ルーチンと、' $ a0'の中に何が入っているのかを整理しましたか?そして(3) 'emittar'の終わり?あなたが戻ったり、止まったり、出たり、何かのものがあってはいけませんか? –
emittarは私のプログラムを通して呼び出される予定で、シミュレータの表示部分に文字を印刷することになっています。 $ a0は文字を保持するはずです。 – user977154
右。だから、あなたはテスト時にそれをどう呼んでいるのですか?最後に 'jr $ ra'や何かがあるべきではないでしょうか? –