問題タブ [assembly]
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.
macos - OS X でアセンブラを学習するためのツールはどこにありますか?
アセンブラを学びたいです。ただし、OS X でアセンブラーを実行するためのリソースはほとんどありません。
Mac でアセンブリをプログラミングした人はいますか? どこで学びましたか?
そして、私が組み立てをしてはいけない理由はありますか?コンピューターを取り返しのつかないほど (かなり) クラッシュさせるリスクがありますか?
c# - ランタイム変数文字列をインジェクション用のマシンコードにアセンブルする .NET 用のアセンブラ ライブラリ
C# から呼び出すことができる x86 アセンブラーなどはありますか? x86 命令を文字列として渡し、バイト配列を取得できるようにしたいと考えています。存在しない場合、どうすれば自分で作成できますか?
明確にするために-C#からアセンブリコードを呼び出したくありません-命令からコードをアセンブルし、バイト配列でマシンコードを取得できるようにしたいだけです。
このコード (オンザフライで生成される) を挿入して、完全に別のプロセスに挿入します。
assembly - アセンブラでプログラミングして、クロックから乱数発生器のシードを取得する方法
コンパイラ、TASM 5
アーキテクチャ x86。
乱数生成アルゴリズムの場合、クロックをシードとして使用します。
私はその解決策を見つけました:
assembly - アセンブリ プログラムを実行できません
Introduction to 80x86 Assembly Language and Computer Architecture を読み始めたところです。第 3 章に示されている最初の例を実行するために NASM を使用しようとしていますが、うまくいきませんでした。
theory - Assembly で学ぶべき重要な概念
私は、新しい言語を学ぶことで得られる最も重要なことの 1 つは、新しい言語の使い方ではなく、そこから得られる概念の知識であるという考えを固く信じています。Assembly がどれほど重要で有用であるかを尋ねているわけではありません。また、実際のプロジェクトでそれを使用したことがなくてもかまいません。
私が知りたいのは、アセンブリのどの概念が一般的なプログラマーにとって最も重要だと思うかということです。アセンブリに直接関係している必要はありません。CPU キャッシュなど、高級言語ですべての時間を費やしている典型的なプログラマーが理解できない、または当然のことと考えているものでもあります。
assembly - `testl` eax対eax?
私はいくつかのアセンブリを理解しようとしています。
次のようなアセンブリ、私はtestl
ラインに興味があります:
私はとのtestl
間のそのポイントを理解しよう%eax
としてい%eax
ますか?このコードの詳細は重要ではないと思います。私はテスト自体を理解しようとしているだけです。値は常に真であるとは限りません。
assembly - Sparc ハードウェアなしで Sparc バイナリを実行する
ここ数か月、私は SPARC プロセッサ (V8 または V9) の組み立てに興味を持っていました。私の質問はこれです。私は SPARC マシンにアクセスできません。x86 マシンで SPARC バイナリを実行する方法はありますか? QEMU を見てきましたが、設定方法がよくわかりません。
com - x86 アセンブリからの COM?
x86 アセンブリ言語を介して COM オブジェクトを呼び出すことはできますか? もしそうなら、どのように?
なぜ私はこれをしたいのですか?ソースを持っていない 2 つのプログラムがあるとしましょう - 私が持っているのはバイナリだけです。それらの 1 つは COM インターフェイスを実装し、もう 1 つは実装していません。この COM インターフェイスを使用して、最初のプログラムにコードを挿入し、2 番目のプログラムを呼び出す必要があります。これには、x86 アセンブリを使用する必要があります。
assembly - gcc を使用して Intel 構文でアセンブリ コードを生成するにはどうすればよいですか?
このgcc -S
オプションは AT&T 構文でアセンブリ コードを生成しますが、Intel 構文でファイルを生成する方法はありますか? または、2つの間で変換する方法はありますか?
c++ - Borland x86 インライン アセンブラ。ラベルのアドレスを取得しますか?
Borland Turbo C++ をインライン アセンブラー コードで使用しているため、おそらく Turbo Assembler (TASM) スタイルのアセンブリ コードです。私は次のことをしたい:
そのため、SomeLabel のアドレスが EAX に配置されます。これは機能せず、コンパイラは次のように文句を言います: 未定義のシンボル 'SomeLabel'。
Microsoft Assembler (MASM) では、ドル記号 ($) が現在の場所のカウンターとして機能します。これは、私の目的に役立ちます。しかし、これも Borlands Assember では機能しないようです (式の構文エラー)。
更新: もう少し具体的に言うと、実行時ではなく、コンパイル/リンク中に定数として eax に移動するアドレスをコンパイラが生成する必要があるため、「mov eax, 0x00401234」のようにコンパイルされます。
誰でもこれを機能させる方法を提案できますか?
更新: Pax の質問 (コメントを参照) に応答するには、実行時に Windows ローダーによってベース アドレスが変更された場合でも、DLL/EXE PE イメージは Windows ローダーによって再配置され、ラベル アドレスは実行時に次のようにパッチされます。ローダーは再ベースのアドレスを使用するため、ラベル アドレスにコンパイル/リンク時の値を使用しても問題ありません。
よろしくお願いします。