問題タブ [machine-instruction]

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.

0 投票する
1 に答える
286 参照

assembly - アセンブリ命令の方向ビットとソースまたは宛先を読み取る方法

そのため、命令のソースまたは宛先ポイントを取得する必要があるコード (x86 用) に取り組んでいます。このために、ModRM または REG が宛先またはソースのどちらであるかを示す方向ビットが必要です。また、即値を処理できる必要があります。これまでのところ、命令を処理することができ、それはプライマリ オペコードです (プレフィックスと共に)。これを行う最も簡単な方法は何か、または宛先/ソースが決定される良いコード例(レジスタ、メモリアドレス、即値オペランドなど)を誰かが教えてくれるかどうか疑問に思っています。私は多くのデコーダーを見てきましたが、それらのほとんどは 1 つのことに特化して構築されており、多くの機能を含むものは非常に複雑です。

0 投票する
1 に答える
1510 参照

assembly - MIPSシフト命令

MIPSのsll命令では、5ビットしか使用できません。シフト量が31を超える場合、シフトはどのように機能しますか?それを5ビットでどのように表現しますか?

ありがとう

0 投票する
2 に答える
1815 参照

assembly - アセンブリ言語のシンボリック オペコード

16 進マシン命令をシンボリック オペコードに変換するのはかなり混乱しています。このセクションからいくつかのレビューの問題があります。

これらの問題を処理する方法がわかりません。また、概念に頭を悩ませることもできません。誰かが私にそれをもっと簡単な言葉で分解できますか?

0 投票する
1 に答える
445 参照

c - アクセサリ関数呼び出しではなく、ユーザースタックの単一命令プッシュ/ポップ?

プロセッサ スタックでは、push mov や pop などは単一の命令です。

ソースコードをコンパイルするとき、コンパイラは単一のマシン命令バージョンを生成しますが、実行時に、スタックが...まあ通常のスタックコンテナであると仮定すると、実行時にスタックに格納された値にアクセスするには関数呼び出しが必要です。マシンコード。

単一の機械命令よりもはるかに長いセッターおよびゲッターメンバー関数を使用する代わりに、動的ランタイムオブジェクトに対して同じレベルの効率を達成することは可能ですか?

私の考えはマークポインターを使用することですが、関数呼び出しに頼らずに、実行時にその値を文字通りメモリロケーションにプッシュする方法、またはメモリロケーションからプッシュする方法がわかりません。

アセンブリのインライン化はおそらくオプションですが、可能であれば避けたいものです。しかし、単一の命令にならないように、関数本体内に配置する必要があると思います。

0 投票する
4 に答える
6585 参照

assembly - 各機械語命令の実行にかかる時間は?

設定、読み取り、移動、比較などの操作の実行にはすべて同じ時間がかかりますか?

そうでない場合: どのくらいの期間かを調べる方法はありますか?

つまり、特定のタイプの cpu がさまざまなアセンブリ言語命令 (移動、読み取りなど) を実行する速度です。

0 投票する
1 に答える
222 参照

android - Eclipseの命令によって取られた命令サイクルの数を見つける-Android

通常のwifiスキャンでAndroidデバイスに必要な命令サイクル数を確認するにはどうすればよいですか?もちろん、デバイスによって異なりますが、それを見つける方法はありますか?私は日食を使用しています。指示は次のとおりです。

ここで、wifiManagerはWifiManagerクラスのインスタンスです。

また、スキャンを実行する、つまり上記の命令を実行するのにかかる時間をミリ秒単位で知りたいです。私はそれを使用して見つけました

ただし、開発者のWebサイトには、「システム時間を変更すると結果に影響する可能性があるため、この方法をタイムアウトやその他の経過時間の測定に使用しないでください」と記載されています。これは何を意味するのでしょうか??
どんな助けでもいただければ幸いです。ありがとうございました。

0 投票する
3 に答える
8470 参照

assembly - 実際のマシンコードは、さまざまな時点でどのように見えますか?

マシンコードが実際に何であるかについては多くの意見があるようです。アセンブリ、バイナリ、または16進数だと言う人もいます。

マシンコードは本質的に特定のプロセッサ用の一連の命令であると言うのは正しいですか?もしそうなら、私はこれらが2進数または16進数の表記法、またはアセンブリで表すことができると思います。しかし、翻訳されていない「実際の」機械語はどのように見えるのでしょうか。アーキテクチャのワードサイズに基づいていますか?または、すべての目的と目的で16進数がデフォルトの表現ですか?

ハードドライブに座っているときはどのように見えますか?レジスターに座っているときはどのように見えますか?それが処理されているときはどうですか、それは単にその時点での一連の電圧変化ですか?

0 投票する
3 に答える
7165 参照

assembly - アセンブリ命令の「lea」命令に乗算を含めることができるのはなぜですか?

私は、パフォーマンスが重要なアプリケーションの非常に低レベルの部分に取り組んでいます。

生成されたアセンブリを調査しているときに、次の指示に気付きました。

メモリ参照 ([edx+4] など) を使用するときの加算は見慣れていましたが、乗算は初めて見ました。

  • これは、x86 プロセッサが lea 命令で単純な乗算を実行できるということですか?
  • この乗算は、命令の実行に必要なサイクル数に影響を与えますか?
  • 乗算は 2 の累乗に制限されていますか (これが当てはまると思います)。

前もって感謝します。

0 投票する
2 に答える
18403 参照

c - syscall は x86_64 の命令ですか?

glibc でシステム コールを実行するためのコードを確認したかったのです。このようなものを見つけました。

ここで私の質問は、syscall (命令の前cmpq) が命令であるかどうかです。第二に、それが命令である場合、ENTRY (syscall) の意味は何ですか? ENTRY (ENTRY が何なのかわからない) と指示が同じ名前ですか? 第二に、L(pseudo_end) とは何ですか?

0 投票する
1 に答える
38 参照

machine-instruction - プログラム実行中にIPが値を変更した回数のレポート

プログラムの実行中に、関連するマシンレベルの命令ポインターが値を変更する正確な回数をユーザーに通知するソフトウェアを(特定のプログラミング言語、プラットフォームなどに対して)作成できますか?そのようなソフトウェアはすでに利用可能ですか?