プログラムを書くか開く
サンプルから始めるか、自分でアセンブリを書くか、.sファイルを開きます。データは.dataの下に、コードは.textの下に置きます。
ラベルや疑似命令を使ってRV32IMアセンブリを書き、最高速度でも1命令ずつでも実行できます。
ブレークポイントを設定し、1つ戻り、実行中のレジスタ、メモリ、マシンコード、コンソールを確認できます。
RISC-Vシミュレーターを読み込み中…
サンプルから始めるか、自分でアセンブリを書くか、.sファイルを開きます。データは.dataの下に、コードは.textの下に置きます。
「実行」で最高速度で動かすか、「ステップ」で1命令を実行してどのレジスタやメモリが変わったかを確認します。行番号の横をクリックするとブレークポイントを設定できます。
入出力はコンソールで行われます。レジスタとメモリを確認し、1つ戻って問題の箇所を探し、マシンコードを16進でコピーできます。
1ステップ進みすぎた?「1つ戻る」はレジスタ、メモリ、出力も含めて直前の命令を取り消すので、最初から実行し直さずにもう一度確認できます。
callはraを上書きします。ほかの関数を呼び出す関数は、階乗のサンプルのように、先にraをスタックに保存し、retの前に復元する必要があります。
「マシンコード」タブは各命令が何回実行されたかを数えます。ループ本体の実行回数が1回多い、または一度も実行されていない場合、分岐の誤りがすぐにわかります。
プロセッサー設計のイラストや講義用のクリップが必要なら、WaveSpeed AIで作成しましょう。
対象の新規アカウントに $1 の無料クレジット。カード不要。 ジェネレーターのご利用には、別途アカウントとクレジットが必要です。RISC-Vシミュレーターは無料です。
はい。このオンラインRISC-Vシミュレーターは無料で、アカウント不要、実行回数の制限なし、インストールも不要です。
32ビット基本整数命令セット(RV32I)、乗算・除算・剰余のM拡張、cycle、time、instretカウンターの読み取りに対応しています。コンピューターアーキテクチャやアセンブリの授業で教えられる中核の命令セットです。
ほとんどは動きます。コードは0x00400000から、データは0x10010000から始まり、システムコールは一般的な教育用シミュレーターと同じ番号(a7 = 1で整数出力、4で文字列出力、5で整数読み込み、10で終了など)を使います。「リファレンス」タブにすべて記載されています。
a7に呼び出し番号、a0に引数を入れてecallを実行します。プログラムが読み込みを行うとコンソールが入力を求めるので、入力してEnterを押します。プログラムが求める前に先行入力することもできます。
命令数は正確です。サイクル数はシンプルなインオーダーコアを想定した推定値で、命令ごとに1サイクル、ロードは2、ジャンプまたは成立した分岐は3、乗算は3、除算は33です。
はい。「マシンコード」タブに各命令のアドレス、16進ワード、デコード結果が表示されます。1行に1ワードずつ16進でコピーするか、.hexまたは生の.binファイルをダウンロードできます。
ワードは4の倍数、ハーフワードは2の倍数のアドレスで読み書きする必要があります。ワードデータの前に.align 2を置くか、計算したアドレスを確認してください。エラーにはアドレスと行が示されます。
はい。「1つ戻る」はレジスタ、メモリ、出力も含めて直近最大4,096命令を取り消せるので、最初から実行し直さずにバグを見つけられます。
いいえ。アセンブルも実行もブラウザ内で行われ、プログラムはこのブラウザのストレージに保存されるので、次回もそのまま残っています。
無料、プライベート、いつでも使えます。