問題タブ [program-counter]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
debugging - Atmel Studio はソース ファイル外の命令を実行します
Atmel Studio Simulator を使用して、ATMega8 デバイス用の C プログラムを作成およびデバッグしようとしています。
たとえば、次のコードをデバッグしようとしているとします。
このコードは問題なくビルドされますが、デバッグしようとすると次のようになります。
ある時点で、プログラム カウンターがソース ファイルの外に出ます。なぜこれが起こるのかを調べてみましたが、まだ答えを見つけることができませんでした. ここに分解コードを残しておきます。本当に奇妙だと思います。
メイン関数の初期化:
関数は、ソース ファイルのどこかに戻ります。
そして、CheckBitStatus() 関数に戻ります。
どんな助けでも本当に感謝します。
アレックス
verilog - Icarus Verilog でプログラム カウンター デザインをシミュレートすると無限ループになる
次のプロトタイプを使用して、単純なプログラム カウンター加算器を実装しています。
Icarus Verilog でシミュレートすると、上書きが無効になり、カウントが有効になる最初のティックで無限ループが発生するため、PC 加算器の出力 (PC + 4) が内部レジスタに供給されます。
この問題を、D フリップフロップを 1 ビット レジスタとして使用する基本的なコードに単純化しました。
シミュレーションがスタックした後、VCD 出力は状態の変化を示しません。
私の推測では、特定の目盛りで、加算器は常に異なる値を供給している (継続的に加算している) ため、安定していないため、シミュレーターは値が修正されるのを待ってスタックします。
このデザインは正しいですか (つまり、合成でき、動作するはずです)。
c - プログラムカウンター (AKA 命令ポインター) を 0 にリセットします。
プログラム カウンター (AKA 命令ポインター) を 0 にリセットしようとしています。
次の C コードが動作することを期待していました (しかし、動作しませんでした)。
VS2013 コンパイラを使用する場合の逆アセンブリは次のとおりです。
この問題は C 言語の標準ではなく、特定のコンパイラの実装の問題であることを認識しています。それにもかかわらず、私はそれがすべての適切なコンパイラでほとんど機能することを期待しています.
PC/IP をその関数のアドレスに設定する以外に、関数呼び出しを何にコンパイルできますか?
ありがとう
assembly - プログラム カウンタ オーバーフロー?
プロセッサのプログラム カウンタ (PC) がオーバーフローする可能性はありますか? その場合はどうなりますか? つまり、1 バイトを保持できる場合、255 を超えるとどうなるでしょうか。
mips - mips シングル サイクル データパスへの jal 命令の追加に関する質問
jal 命令を追加しようとしていますが、それがどのように機能するかは理解していますが、ハードウェアに実装するのは難しいですか?
私はこの回路図を持っており、レジスタの前に 31 がマルチプレクサに接続されていることを示していますが、何を接続すればよいかわかりません。R[31] は pc+8 またはジャンプ アドレスに等しいことがわかりますが、それらは 32 ビットであり、マルチプレクサへのエントリはわずか 5 ビットです。