問題タブ [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.

0 投票する
12 に答える
11669 参照

assembly - MIPS - 重要ですか?

私の質問: MIPS プログラミング言語は知っておくと有益ですか?

私は CS の学生で、MIPS に焦点を当てたアセンブリ クラスを受講しています。私は高級言語を書くのはとても快適ですが、Mips には少し落ち込んでいます。

MIPS は、私が本当に集中して完全に把握する必要があるものですか? それは将来私を助けるでしょうか?

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

assembly - z80 マシン コードのリバース エンジニアリングを開始するにはどうすればよいですか?

.z80 メモリ ダンプがあります。リバース エンジニアリングの方法を教えてください。何を知る必要がありますか? 手作業を最小限に抑えるにはどうすればよいですか?

0 投票する
6 に答える
9621 参照

visual-studio - Visual Studio 2008を使用して、MASM 6.11アセンブリコードをアセンブル、リンク、デバッグ、および実行する

これらすべてのビルドプロセスがMASM6.11で提供されるツールによって実行されているかのように、コードを効果的にコンパイル/リンク/ビルドなどしながら、VisualStudio2008を可能な限り使用したいと思います。MASMの正確なバージョンは、6.xの範囲内にある限り、重要ではありません。これは、私の大学が16ビットアセンブリを教えるために使用しているものです。

私はこのテーマについていくつかの調査を行い、いくつかの選択肢があるという結論に達しました。

  1. MASM 6.11がネイティブに行うのと同じフラグなどを使用して、MASM6.11実行可能ファイルを呼び出すようにVSを再構成します。
  2. VSによって呼び出される中間バッチファイルを作成してから、MASMのリンカなどの適切なコマンドを呼び出します。
  3. VSの組み込みビルドツール/ルール(アセンブラー、リンカーなど)を再構成して、MASM6.11で使用される環境と同じ環境を提供します。

オプション(2)は、VSの「外部ツール」インターフェイスで使用できるオプションではMASMのビルドツールを正しく呼び出すには不十分である可能性があることに気付いたときに作成されました。したがって、VSの厳密な引数の受け渡し方法を解釈するバッチファイルが役立つ場合があります。これを機能させる方法についての私の学習では、コマンドプロンプトからML.exe、LINK.exeなどを手動で呼び出す必要がありました。

以下は私の質問に答えるのに役立つかもしれないいくつかのリンクです。私はそれらをすべて読んだことを覚えておいてください、そしてどれも実際の解決策ではありません。私がMASM6.11を指定しても、おそらくもっと一般的な答えを提供することを妨げないことを願っています。

オプション(2)で使用されたのと同様の方法ですが、スレッドのユーザーには連絡できません:http:
//www.codeguru.com/forum/archive/index.php/t-284051.html
(また、私は中間バッチファイルの必要性)

私の質問に対する古い説明:
http ://www.cs.fiu.edu/~downeyt/cop3402/masmaul.html

おそらく私が決定的な解決策に到達した最も近いものですが、MASM以外のツールのスイートを指し、バッチファイルも使用します:
http ://www.kipirvine.com/asm/gettingStarted/index.htm#16 -少し

コードの各ステップで使用されるツールの用語がオフになっている場合はお詫びします->exeプロセスですが、コードの記述が完了してから実行可能ファイルを生成するまでのステップ全体を再現しようとしているため、実行しませんそれはとても重要だと思います。

0 投票する
5 に答える
6698 参照

assembly - GCC インライン アセンブラ、レジスタ サイズの混在 (x86)

次のアセンブラ警告を取り除く方法を知っている人はいますか?

コードは x86、32 ビットです。

コンパイルすると、次の(非常に有効な)警告が表示されます。

私が探しているのは、%0 の下位 16 ビット サブレジスタにアクセスしたいことをコンパイラ/アセンブラに伝える方法です。バイト サブレジスタ (この場合は AL と AH) へのアクセスについても知っておくとよいでしょう。

既に "q" 修飾子を選択しているため、コンパイラは EAX、EBX、ECX、または EDX を使用する必要があります。コンパイラーがサブレジスターを持つレジスターを選択する必要があることを確認しました。

特定のレジスター (およびそのサブレジスター) を使用するように asm コードに強制できることはわかっていますが、レジスター割り当てのジョブはコンパイラーに任せたいと考えています。

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

gcc - 組み込み関数を使用するときに GCC に 3 つ以上の SIMD レジスタを使用させるにはどうすればよいですか?

私はいくつかのコードを書いており、SIMD 組み込み関数 SSE2/3 を使用して高速化しようとしています。私のコードは、いくつかのデータを XMM レジスターにロードして何度も操作する必要があるような性質のものです。生成されたアセンブラー コードを見ていると、XMM0 と XMM1 で別のものをリロードするために、GCC がデータをメモリにフラッシュし続けているようです。x86-64 用にコンパイルしているので、15 個のレジスタがあります。GCC が 2 つしか使用していないのはなぜですか? さらに使用するように依頼するにはどうすればよいですか? レジスタに値を「固定」する方法はありますか? 変数定義に "register" キーワードを追加しましたが、生成されたアセンブリ コードは同じです。

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

assembly - Why can't I change the value of a segment register? (MASM)

I decided to teach myself assembly language.

セグメント レジスタの値を変更しようとすると、プログラムがコンパイルされないことに気付きました。

私が見つけたすべての記事は、実際に少なくとも 4 つのセグメント レジスタの値を変更できると述べています。

この時点で本当に興味があるのはその理由だけです。これらのアドレスを変更する本当の目的はありません。

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

windows - WDK ツールを使用したドライバー ビルドの入力としてのアセンブラー ファイル

アセンブラー ファイルをコンパイルしてドライバー ビルドにリンクする方法。

少し明確にするために

SOURCES ファイル:

で問題が発生しますz.asm fileNMAKEは、ビルド方法がわからないと不平を言っていz.objます。

問題は、asm ファイルを でアセンブルしbuildてリンクする方法bla.sysです。

0 投票する
8 に答える
2658 参照

c++ - 2つの実行可能ファイルを組み合わせる

プログラムから使用したいファイルの一部のビットを変更するコマンドライン実行可能ファイルがあります。このツールを使用して独自の実行可能ファイルを作成し、1つの実行可能ファイルのみを配布することは可能ですか?

[編集]明確化:

コマンドラインツールは、オフセットといくつかのビットを取得し、特定のファイルのこのオフセットのビットを変更します。したがって、特定のビットを特定の値に変更するアプリケーション用のパッチャーを作成したいので、バッチファイルのようなものを作成してそれを実行しますが、それを実行する実行可能ファイルを作成します。つまり、ツールをに埋め込みます。特定の値でそれを呼び出すラッパープログラム。

(Windows)c \ c ++、asmでラッパーをコーディングできますが、.netは使用できません。

0 投票する
5 に答える
4960 参照

assembly - *すべての* MIPS 命令の説明はどこにありますか

次の機能を備えた32ビットMIPS命令/オペコードのリストを見つけることができるWebサイトを知っている人はいますか?

  • 実際のオペコードとアセンブリ言語マクロ (疑似命令) を明確に区別
  • 特権レベルによる違いも含めて、命令の動作について説明します。
  • 命令が導入/改訂された命令セットのリビジョンを示します (例: MIPS I、MIPS II、MIPS32 など)。
  • syscall などの特権命令が含まれます。

私は、主に教育目的で、命令セットの「一部」を文書化した多数の Web サイトを知っています。浮動小数点命令や特権命令を省略したり、部分的にしか説明しない傾向があります。

ご参考までに、私は MIPS プロセッサ サブセットの Verilog コードを見て、それが実際の MIPS プロセッサの命令セットにどの程度準拠しているかを正確に把握しようとしています!

0 投票する
17 に答える
428879 参照

c++ - gcc で C/C++ ソースからアセンブラ出力を取得するにはどうすればよいですか?

どうやってこれを行うのですか?

何かがどのようにコンパイルされているかを分析したい場合、出力されたアセンブリ コードをどのように取得しますか?