問題タブ [inline-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 投票する
6 に答える
1799 参照

c - Cのインラインアセンブラのこれら2つの形式の違いは何ですか?

背景:ユニテックHT630のデータ収集プログラムの作成を任されました。このプログラムは、16ビットMS DOS用にコンパイルされた実行可能ファイルを実行できる独自のDOSオペレーティングシステムを実行しますが、いくつかの制限があります。私はDigitalMarsC / C ++コンパイラを使用していますが、これは非常にうまく機能しているようです。

標準Cライブラリを使用できるものもありますが、ユニットの画面に描画するなど、アセンブリコードが必要なものもあります。デバイスのドキュメントに記載されているアセンブリの例は、C /C++でインラインアセンブリコードを使用するように教えられた方法とは異なります。参考までBYTEに、以下の例ではタイプはunsigned charです。

私が与えられたサンプルコードのサンプル:

インラインアセンブリを使用するように常に教えられた方法:

どちらの形式も機能しているようですが、現時点ではどちらのアプローチでも問題は発生していません。DOSプログラミングでは、一方の形式がもう一方の形式よりも優れていると見なされますか?このint86関数は、2番目の例の独自のアセンブリコードで自分自身を処理していないものを処理しますか?

よろしくお願いします。

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

c++ - Visual Studio に埋め込まれたアセンブリ ファイル

要点を簡潔に説明します。Visual Studio で 64 ビット コードを作成すると、_asm ブロックが完全に削除されました。私の質問は、プロジェクトから呼び出すことができるコードでアセンブリを使用する方法に関する情報をどこで見つけることができるかということです。アセンブリ ファイルのように、C++ ソースで直接呼び出すことができる「最適化された」関数が含まれていると思います。

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

c - GCC を使用した Nasm インライン アセンブリ

私のプロジェクトでは、インライン アセンブリを使用する必要がありますが、GAS にあまり詳しくないため、Nasm である必要があります。
私の試み:

これを行う方法はありますが、GAS の代わりに Nasm を使用しますか?

コンパイル時に引数を追加する必要があると思います。

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

c - レジスタ値を C 変数に読み込む

拡張 gcc インライン アセンブリを使用してレジスタ値を読み取り、それを C 変数に格納する方法を見たのを覚えています。

私は一生、asmステートメントを作成する方法を覚えていません。

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

c++ - インライン アセンブリで関数を呼び出した関数のアドレスを取得する

関数を呼び出した関数のアドレスをインライン アセンブリで取得する方法を知りたいです。私の考えは、mine を呼び出した関数が戻るアドレスを取得し、その前の命令 (つまり、mine を呼び出した関数の呼び出し) を使用して、mine を呼び出した関数のアドレスを取得し、それに与えられたオフセットに追加することです。次の命令のアドレスへの呼び出し (私の呼び出した関数が戻るアドレス)。これまでのところ、これを作成することはできましたが、私のアドレスを取得することはできませんでした。それはかなり簡単で、うまくいきます:

これにより、私のアドレスがうまく取得されます。([ebp+4] が私の返信先のアドレスであることを知ることによって)

同じことをするために、1ステップ上で、古いebpを取得して同じことを試みました。[ebp + 0]が古いebpであることをサイトで見たので、試しました:

しかし、うまくいきません。それで、私の仮定が間違っているか、何か間違ったことをしているので、あなたの助けを求めたいと思います.

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

c - C /C++でのシンプルな「HelloWorld」インラインアセンブリ言語プログラム

私はdevcppとborlandcコンパイラを使用しています...

上記のコードスニペットでは、アセンブリ言語を使用して文字列を出力したいのですが、文字列のアドレスをレジスタcxに入れるにはどうすればよいですか。

コードに何か問題がありますか?

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

visual-c++ - インラインアセンブリの初心者の問題

私はVS2008C++(ライブラリなし)を使用しています。これは私のコードです:

次のエラーが発生します。

エラー1エラーC2400:'opcode'のインラインアセンブラ構文エラー。「不正なトークン」が見つかりました
エラー2エラーC2400:「オペコード」のインラインアセンブラ構文エラー。「不正なトークン」が見つかりました
エラー3エラーC2400:「オペコード」のインラインアセンブラ構文エラー。「不良トークン」が見つかりました

どうしてこれなの?

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

c++ - サブルーチンのインラインアセンブラ呼び出し

インラインアセンブラについて質問です。同じ関数内でインラインアセンブラから別のアセンブラサブルーチンを呼び出すことは可能ですか? 例えば:

サブルーチン sub123 はどこに、どのように記述すればよいですか?

乾杯、
トーマス

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

c++ - MS C++ がこのコードをアセンブリに追加するのはなぜですか?

私はいくつかのコード(インラインアセンブリ)を持っています。

MS C ++は、これらのコード(**でマークされた)を私の手順に自動的に追加します。
なんで?
それを避ける方法は?

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

c++ - scanf の結果がユーザー入力と異なるのはなぜですか?

ユーザーが「023919」と入力すると、プロシージャーは 19 を返します。
これは機能ですか、それとも暗さは標準ですか?