問題タブ [status-register]
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.
assembly - アセンブル条件コードレジスタについて
addl命令を使用して 、C 式 "t=a+b" と同等の処理を実行するとします。ここで、a、b、t は int型の変数であり、条件コードは次の C 式に従って設定されます。
CF: (符号なし t) < (符号なし a) 符号なしオーバーフロー
ZF: (t==0) ゼロ
SF: (t<0) ネガティブ
OF: (a<0 == b<0) && (t<0 != a<0) 符号付きオーバーフロー
コンピュータシステムの教科書から引用。
- CF はキャリーフラグです。
- ZF はゼロフラグです。
- SFはサインフラグです。
- OF はオーバーフロー フラグです。
これらの C 式が上記の効果を持つ理由がわかりません。たとえば、式 (t<0) が SF フラグを設定するのはなぜですか?? t<0 は true または false のいずれかです (教科書ではこれらの変数の型しか説明されていないため)。しかし、なぜ符号フラグが設定されているのでしょうか?私は本当に混乱しています。助けてください..ありがとう!
c++ - このアセンブリを c に変換するのを手伝ってください
私のコンパイラは、私が持っているアセンブリ ファイルでは動作しません。また、私の他のコンパイラは、私が持っている c ファイルでは動作しません。組み立てがわかりません。これを移動する必要がありますが、どこにもすぐには行きません。助けてくれる人はいますか?翻訳者がいないなんて信じられない。ファイルの冒頭は次のとおりです。
とにかく、デバイス定義が私のmain.cにあるので、最初の2行をほとんど除外できることがわかりました。2 つの #defines はまさにそれですが、最も簡単な方法 (私が思うに) は、_Z と _C のインスタンスを STATUS,2 と STATUS,0 に適宜置き換えることです。次の行 (GLOBAL) は、私が収集している単なる変数宣言です。LSB と MSB も値を割り当てることを除いて同じです。次のチャンクは、それらの名前 (AARGB0 など) を持つ整数の束を宣言するだけで、その後のチャンクは関数です。
私のコンパイラには #asm/#end asm ディレクティブがあるので、その関数を変換することさえ気にしません。
私はそれをすべて持っていると思います...ビルドして、コンパイラが STATUS が定義されていないことを叫ぶまで。そしてもちろんそうではありません。しかし、それは何ですか?ネットで STATUS レジスタが何か特別なものだと読んだのですが、実際にどのように機能するのかわかりません。
あなたが気づいていないなら、私はそれが本当に何を求めているのかさえわかりません. 私は血まみれのことを機能させたいだけです。
embedded - フルレジスタアクセスの意味
私は MSP430 マイクロコントローラーに取り組んでおり、そのアーキテクチャーを調べていました。ユーザー ガイドの機能タブの下に、「プログラム カウンター (PC)、ステータス レジスター (SR)、およびスタック ポインター (SP) を含むフル レジスター アクセス」のような記述があります。アーキテクチャに関係なく、CPU は常にすべてのレジスタにアクセスできるという印象を受けました。
発言に対する私の理解は間違っているかもしれません。誰かがそれが正確に何を意味するのか説明できますか?