問題タブ [opcodes]

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 に答える
1116 参照

erlang - Erlang オペコードとその意味

Erlang VM で使用されるオペコードには明らかな意味を持つものもあれば、不可解なものもあり、微妙な違いによって互いに異なっているように見えます。

例として:

  1. call_extcall_ext_onlyオペコードの違いは何ですか?
  2. allocateオペコードとオペコードの違いは何allocate_zeroですか?
  3. test_heapオペコードは何に使用されますか? それはある種のチェックですか、それとも実際にヒープにスペースを割り当てますか? タプルとリストの使用法に何らかの形でリンクされていますが、どの用語でしょうか?
  4. allocateスタンドの引数は何ですか?

Erlang VM で使用されるオペコードについて入手可能なドキュメントを誰かが教えてくれたり、少なくとも上記の点について教えてくれたりしたら、非常にありがたいです。

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

c++ - C++バイトをオペコードに変換しますか?

この質問の言い方がよくわかりませんが、アセンブラやその他のツールが特定のバイトのオペコードをどのように表示するか知りたいです。

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

c++ - x86 EXE に winapi 呼び出しの割り当てはありますか?

C++ コンパイル済み EXE 内で割り当てはどのように処理されますか? コードを持っていない場合、割り当てマネージャーがアプリに組み込まれているため、割り当て/割り当て解除を追跡できませんか? または、メモリ割り当てに WinAPI 呼び出しなどがありますか?

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

java - ASM4を使用した実行時のクラスファイルのオペコード読み取り

クラスファイルのオペコードを表示するためのASMフレームワークのエンドツーエンドの実装を示すことができるドキュメントを持っている人はいますか?または、Hello、Worldで私を助けてくれる体はありますか?ASMフレーム実装のプログラム例?JAVAPコマンドの場合と同じように、ASMフレームワークを使用してクラスファイルのオペコードを表示したいと思います。

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

string - ASMコード(オペコード)を文字列に変換する方法

PHPでアセンブリコードを次のような文字列に変換するにはどうすればよいですか?

これはHEXで書かれたasmコードのオペコードだと思います。しかし、もしそうなら、どうすればこれらの文字列のようなasmコードを変換できますか?

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

c# - Windows ストア アプリ API の .NET の Emit.OpCodes の目的は?

サードパーティ ライブラリをWindows ストア アプリ用の .NET に移植することを検討しています。ライブラリは、 ILGenerator.Emitメソッドのオーバーロードへの呼び出しを介してSystem.Reflection.Emit.OpCodesを過度に使用します。

.NET for Windows Store Apps API には、OpCode構造とOpCodesクラスが含まれていますが、クラスはありません。またILGenerator、私が見つけた限りでは、代替も見つかりませんでした。

私は明らかに何かが欠けていますが、ILGeneratorクラスがなければ、.NET for Windows Store apps API を含める目的System.Reflection.Emit.OpCodeですかOpCodes?

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

c++ - 可変長オペコードと CPU タイミングのフェッチ

私は現在、次の学年の秋学期に備えるための夏のプログラミング プロジェクトとして、C++ で NES エミュレーターを作成しようとしています (しばらくコーディングしていません)。私はすでに Chip8 エミュレーターを書いているので、次のステップは NES エミュレーターを書いてみることだと思いました。

とにかく、私は立ち往生しています。オペコード テーブルにこのWeb サイトを使用していますが、障害が発生しています。Chip8 では、すべてのオペコードが 2 バイトの長さだったので、簡単に取得できました。ただし、NES には、CPU のアドレッシング モードに応じて、2 バイトまたは 3 バイトのオペコードがあるようです。オペコードごとに読み取る必要があるバイト数を簡単に計算する方法は思いつきません (私の唯一のアイデアは、オペコードの最初のバイトをチェックして、あと何バイト読み取るかを確認する、非常に長い if ステートメントを作成します)。

また、サイクルをカウントする方法を理解するのにも問題があります。すべてが同期するようにプログラミング言語内で時計を作成するにはどうすればよいですか?

無関係な補足として、NES はリトルエンディアンであるため、programCounter + 1 を読み取り、次に programCounter を読み取って正しいオペコードを取得する必要がありますか?

0 投票する
0 に答える
143 参照

php - PHP オペコード命令の説明

PHP オペコードのリストを見つけたので、PHPの内部構造を理解するのに少し役立ちました。しかし、このページにオペコードのすべての情報を表示するために使用されるスキームを正確に理解するには、まだ問題があります。たとえば、セクション PHP opcodes の下を参照してください。私はすでに「!」を理解しました。変数を意味し、「->」はコード行を意味し、「~」は「内部計算結果のメモリ」をアドレス指定しているようです。たとえば、echo 2 + 3最初に 2 + 3 を計算する必要があるため、結果は一時的に保存されます。

オペコードの説明で使用される文字と、列「fetch」および「ext」の意味の詳細な説明をいただければ幸いです。また、116-131 と 137 の数字にはオペコードがありません。これには意味がありますか?

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

c# - 作成したばかりのメソッドを呼び出す。最大スタック値の計算エラー

そのため、最近DNLIBをいじっていて、.netファイルにメソッドを追加しようとしていました. 以前にコンパイルしたファイルからメソッドを取得したので、基本的にはメソッドを模倣しようとしていました。

GetTheTypes、InvokeIt、および InvokeCall の 3 つのメソッドがあります。

InvokeCall は GetTheTypes メソッドと InvokeIt メソッドの両方を呼び出すため、最初にメソッド GetTheTypes と InvokeIt を作成する必要がありました。だから私はそれらのメソッドを追加しました、そしてそれらは完全に追加されました。コンパイルして保存したところ、リフレクター/ILSpy で問題なく表示できました。注: メソッドを追加するとき、それらが静的か非静的かを確認するチェックがあるので、それは問題ではありません。それらはすべて public メソッドでもあります。

次に、InvokeCall メソッドを追加したいと思いました。そこで、他のメソッドに対して行ったのと同じことを行い、ILSpy で模倣したいメソッドを開き、基本的にすべての命令とローカル変数を新しい CilBody にコピーしました。これは、模倣していた InvokeCall メソッドに追加されました。唯一の問題は、「最大スタック値の計算エラー」というエラーがスローされたことです。奇妙なことに、OPCode を Call から NewObj に変更すると、正常にコンパイルされました。しかし、それは私がやりたいことではありません。私がやりたいことは、上記のエラーをスローします。

命令を追加するために使用するコードは次のとおりです。

_getThetypesMethod変数はMethodDefUserとして定義されており、以前に作成して問題なくコンパイルしたメソッドで構成されています。私もこれを試しました:

それもうまくいきませんでした。メソッドの DeclaringType も取得しようとしましたが、次のようにメソッドを見つけました。

それもうまくいきませんでした。

したがって、作成したばかりのメソッドを呼び出す方法について何か提案があれば教えてください。私はこの問題を解決する方法を最後の日かそこらで見つけようとしてきましたが、うまくいきませんでした。ありがとう。

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

c - シェルコードの例の理解

シェルコードのチュートリアルで、次の例を見ました。

アイデアは、exit()-syscall を作成することでした。したがって、アセンブリを生成します。

これは分かります。0 は ebx に保存する exit() の引数、1 は exit syscall の番号で、0x80 で CPU をカーネル モードに変更し、syscall を実行します。

その後、次のオペコードを生成します。

次に、これを次のような C 言語に翻訳します。

したがって、私が理解しているのは、彼らがオペコードを char 配列で受け取るということですが、main() メソッドで何を作成したかはわかりません。最初の行は大丈夫です。しかし、2行目、3行目で何を表現したいのか?

よろしくお願いします、