プログラムカウンターシミュレーター
loop: のようなラベル、LOAD や ADD などの順次命令、BR label や BR +8 などの分岐に加え、JMP、CALL、RET、HALT を使用できます。
この学習用シミュレーターは、空でない各命令行にアドレスを割り当て、簡易的なプログラムカウンター(PC)の動きを追跡します。コード行、文、トークンのカウンターではなく、プログラミング言語のコンパイルや実行もしません。
命令リストを追跡する方法
-
1
短いリストを入力
1行に1つの固定長命令を記述し、必要なら loop: のようなASCIIラベルを使います。
-
2
アドレスモデルを選択
開始アドレス、1・2・4・8バイトの命令サイズ、16/24/32ビット幅、表示形式を設定します。
-
3
追跡方法を設定
認識される全分岐を一律に「分岐する」または「分岐しない」とし、1〜80ステップを選んで遷移を確認します。
対応するモデル
| リスト項目 | 動作 |
|---|---|
LOAD、ADDなどその他のopcode |
選択した固定命令サイズ分だけ進む |
BR、BRA、BRANCH、BEQ、BNE、BGT、BGE、BLT、BLE、BZ、BNZ、JZ、JNZ |
一律の分岐する/しない設定を適用 |
JMP、JUMP、GOTO |
ラベルまたは数値アドレスへ移動 |
CALL、JSR、BL / RET、RETURN |
模擬リターンアドレスを追加 / 取り出す |
HALT、HLT、STOP |
現在のPCで停止 |
分岐先にはASCIIラベル、10進アドレス、0x付き16進アドレスを使えます。+8のように符号がある値は次の順次PCからの相対値、符号なしは絶対値です。アドレスは選択ビット幅で周回します。//と;以降はコメントです。オペランドは表示するだけで評価しません。
制限とプライバシー
- 入力は1,800文字で切り詰められ、200命令で解析を止めます。
- 追跡は1〜80ステップです。すべての条件分岐が一つの共通設定を使います。
- レジスター、メモリー、フラグ、パイプライン、遅延スロット、命令エンコード、可変長命令はエミュレートしません。
- 通常モードではリストを当社のサーバーへ送り、ステップ式モードではURLにも入ります。機密コードは貼り付けないでください。
よくある質問
いいえ。命令行にアドレスを割り当ててPCを追跡するもので、ソース行、文、トークンは数えません。
いいえ。少数の汎用的な制御opcodeだけを認識します。それ以外はPCを進めるだけで、オペランドは実行しません。
次の順次PCにオフセットを加えます。0x1000で4バイト命令なら分岐先は0x100Cです。
表示のため当社のサーバーへ送られ、ステップ式モードではURLにも入ります。外部解析APIは使いませんが、機密コードは避けてください。
関連ツール
ASCII表リファレンス
0から127までの完全なASCII表です。NUL、LF、DELなどの制御コードを含め、各文字の10進数、16進数、8進数、2進数、HTML数値文字参照を表示します。
HTML文字参照
HTMLエンティティの検索可能なリスト、その名称コードおよび数値コード、および特殊文字や記号のワンクリックコピー機能を提供します。
キーボードショートカット一覧
macOS、Windows、Linux向けに、VS Code、Chrome、GNU Readlineを使うBashの公式資料に基づく既定ショートカットを検索できます。
JavaScript圧縮ツール
変数名のリネーム、空白の削除、デッドコードの除去、定数畳み込みでJavaScriptを圧縮し、より小さなバンドルを作成します。
FPS カウンター
requestAnimationFrame でブラウザーの FPS を測定。平滑化、最小・最大フレームレート、警告しきい値、任意のグラフに対応。ローカルで動作し、アップロードも API も不要です。
メールアドレス検証ツール
メールアドレスを検証します。RFC 5322構文チェック、MXレコードのライブ確認に加え、ローカル部、ドメイン、長さの詳細を表示します。メールは送信されません。
このツールは他の言語でも利用できます
- เครื่องจำลองตัวนับโปรแกรม [TH]
- Symulator licznika rozkazów [PL]
- Trình mô phỏng bộ đếm chương trình [VI]
- Simulador de contador de programa [PT]
- محاكي عدّاد البرنامج [AR]
- Programmatellersimulator [NL]
- 프로그램 카운터 시뮬레이터 [KO]
- Simulador del contador de programa [ES]
- Simulator för programräknare [SV]
- Simulator program counter [ID]
- Simulateur de compteur de programme [FR]
- Programmzähler-Simulator [DE]
- Simulatore del program counter [IT]
- Program Counter Simulator [EN]
- Симулятор счётчика команд [RU]
- Program sayacı simülatörü [TR]
- 程序计数器模拟器 [ZH]