プログラムカウンターシミュレーター
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は使いませんが、機密コードは避けてください。
関連ツール
Webpack設定ジェネレーター
素の JavaScript、React、Vue 向けに webpack 5 の webpack.config.js を生成します。TypeScript、Babel、CSS や Sass、画像、HtmlWebpackPlugin、開発サーバー、npm install のコマンドまでそろいます。
CSSローディングアニメーション生成ツール
純粋なCSSで円形スピナーを作成できます。直径、枠の太さ、アクセントカラー、回転速度を設定し、ライブプレビューを確認して、そのまま使えるCSSをコピー。SVGもJavaScriptも不要です。
OpenAPI 検証ツール
OpenAPI または Swagger のドキュメントを JSON か YAML で貼り付けて、コア構造をチェックします: バージョンフィールド、info オブジェクト、paths を、わかりやすいエラーと警告つきで。
カラーティントジェネレーター
ベースカラーの明るい色合いを生成します。デザイン システム トークン、背景、ホバー状態を 3 ~ 20 段階でスケールします。
CMYK から RGB への変換
標準的な計算式で CMYK の割合をおおよその RGB 値と Hex 値に変換し、画面用にすばやく確認できます。
PHPフォーマッター
単純なPHPコードに改行と2または4スペースのインデントを追加します。結果は必ず確認してください。PHPパーサーでもPSR-12準拠ツールでもありません。
このツールは他の言語でも利用できます
- Simulator för programräknare [SV]
- Simulador de contador de programa [PT]
- Simulador del contador de programa [ES]
- เครื่องจำลองตัวนับโปรแกรม [TH]
- Simulator program counter [ID]
- Simulateur de compteur de programme [FR]
- Programmzähler-Simulator [DE]
- 프로그램 카운터 시뮬레이터 [KO]
- Programmatellersimulator [NL]
- محاكي عدّاد البرنامج [AR]
- Trình mô phỏng bộ đếm chương trình [VI]
- Symulator licznika rozkazów [PL]
- 程序计数器模拟器 [ZH]
- Program Counter Simulator [EN]
- Simulatore del program counter [IT]
- Симулятор счётчика команд [RU]
- Program sayacı simülatörü [TR]