問題タブ [masm]

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 投票する
2 に答える
566 参照

c++ - MASMを使用したインラインio待機

これをVC++とMASMを使用するように変換する方法

asmが__asmに変更され、揮発性を削除することはわかっていますが、次は何ですか?

以下のコードに配置する関数を作成しようとしています

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

assembly - Visual C++ アセンブリ リンク ライブラリのトラブル

プロジェクトを VC++ Express 2008 でビルドする際に問題が発生しています... ライブラリ irvine32.inc/lib を使用しています。INCLUDE Irvine32.inc は、デフォルトで学校 (構成済みの VS 環境) で動作しますが、自宅 (Windows 7 x64) では問題が山積みです。ここでの私の最初の投稿は、irvine32.inc が参照した同じフォルダー内のファイルを「開くことができなかった」というものでした。特定のプロジェクト、progress のインクルード パスに irvine フォルダーを追加しました。その後、mt.exe でエラーが発生しましたが、MSDN の提案ではウイルス対策を無効にするよう提案されており、プロジェクトはビルドされますが、irvine32 で何も参照しないプログラムを実行すると、プロジェクトがトリガーされたことが繰り返し通知されます。ブレークポイントであり、続行または中断できます。続行すると同じウィンドウが表示され、ブレークすると別のポップアップがロードされ、「コール スタック フレームのシンボルは読み込まれません。ソース コードを表示できません。」というポップアップが表示され、逆アセンブリを表示できます。

作業ステートメントの有無にかかわらずテストしましたが、コードの最初の行で同じブレークポイントをスローするだけです。ここで、インクルード ファイル (この場合は DumpRegs) から何かが必要な場合にプログラムを実行すると、次のようになります。

これは私に与えます

1>main.obj: エラー LNK2019: 関数 _main@0 で参照されている未解決の外部シンボル _DumpRegs@0 1>C:\Users\Cameron\csis165\Lab8_CCarroll\Debug\Lab8_CCarroll.exe: 致命的なエラー LNK1120: 1 つの未解決の外部

これは、本の著者の例からプロジェクトを構築した場合には発生しません。これには、同じ include ステートメントがあります。

私は困惑しています。:(

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

assembly - 16 ビット アセンブリ コードの OFFSET とはどういう意味ですか?

16 ビット リアル モードのアセンブリ コードの例をいくつか見ていきます。

私は次の行に出くわしました:

これは何をしているのですか?そこに「オフセット」があることは何をしますか?

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

c# - C#で使用するためのX86/X64用のアセンブリのコンパイル

C#アプリにcpuid機能を追加したいと思います。この興味深いブログ投稿をオンラインで見つけました。これをコンパイルするにはおそらくMASMが必要ですが:

  1. どのように始めればよいですか?
  2. X86とX64の両方のdllをコンパイルする必要があると思いますが、そのようなことをどのように行うかについての手がかりがありません(そして私は少し時間に追われています)。

だからどんな助けでも大歓迎です!

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

assembly - LNK4086警告およびVS2008asmビルドでのdllエントリポイントの欠落

VS2008で次の.asmファイルをコンパイルしようとしました(この単一の.asmファイルを追加した空のWin32 dllプロジェクトの一部として):

コードは元々ここに投稿されました。

ビルドすると、警告が表示されます。

警告LNK4086:エントリポイント'_start'は、12バイトの引数を持つ__stdcallではありません。画像が実行されない可能性があります

ただし、.dllは生成されます。

そのdllを使用しようとすると、「dllでエントリポイントCPUIDIsSupportedが見つかりません」という例外が発生します。

しかし今ここにキッカーがあります:

MASM32でまったく同じasmファイルをコンパイルした場合でも、LNK4086を取得できますが、dllを適切に呼び出すことができます。

VS2008ソリューションにasmファイルを含めて、MASM32を使用する代わりに、そこからビルドしたいと思います。したがって、動作するdllを取得するために、ビルドプロセスについて何を変更する必要があるかを知りたいと思います。また、VS2008内から64ビットバージョンのdllを作成する方法についても興味があります。

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

assembly - XOR を使用してファイルを復号化する

最初に MASM を使用しています。暗号化されたファイルを開き、その内容をバッファーに入れ、新しいファイルにエクスポートしています。復号化部分を除いて、すべてが機能しています。

バッファー自体を XOR する必要があるのか​​、edx (バッファーを格納する場所) を参照するのか、eax レジスターに入れた読み取りバイトを XOR する必要があるのか​​ わかりません。

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

visual-studio - VisualStudio2008でのアセンブリプログラミング

Visual Studio 2008 MASMプロジェクトのベストプラクティスプロジェクトテンプレートを持っている人はいますか?MicrosoftがVSにMASMを同梱した理由はわかりませんが、プロジェクトテンプレートを使用してデフォルトで追加できるものがたくさんある場合は、空のC++プロジェクトを使用することをお勧めします。

また、MASMプロジェクト用のTFS 2008のプロジェクトコネクタが見つかりませんでしたが、ありますか?

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

assembly - 単純なアセンブリループから抜け出すことはできません

アセンブリ言語で単純なループを作成するように求められましたが、ループが必要なときに終了せず、無限ループが続くため、問題が発生します。

ECXに入力によって取得される変数を指定する必要がありますが、以下のコードでは、カウンターを直接指定した場合でも、無限ループに陥ります。

私のコードはここにあります(更新):

PasteBinコード

コードには、実際のループ以外のエラーが含まれている可能性があります。

//プログラム要件の説明のために編集...

プログラムは、ループのカウンターとして使用される入力「n」を取得する必要があります。次に、入力「n」個の数値を取得します。数値が正の場合は変数postotに追加する必要があり、負の場合は変数negatotに追加する必要があります。「n」個の数値を入力した後、各変数の結果を出力して、プログラムを終了します。

編集2:

スタックを正しくクリアすることでループの問題を修正したので、次を追加しました。

と:

これでループの問題が修正されました。

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

assembly - MOV [EBX]、AX-レジスタへのポインタ?

MOV [1234H], AXAXの値がメモリ内の1234の16進アドレスにコピーされることを意味します。だから、私が言っていることが間違っているなら、私を訂正してください、[]演算子はポインタとして機能しますよね?

そうは言っても、次の指示が理解できません。MOV [EBX], AXなぜ[]を使用するのですか?EBXはプロセッサ内の汎用レジスタであり、メモリセルではないため、EBXへのポインタはありません。

PS私はmasm32でプログラミングしています。

ありがとう

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

masm - MOVコマンドのMasm間接アドレッシングモード

私は次のフォームを試しましたが、masmはそれらのどれも好きではありません:

私は何が欠けていますか?なぜ間接アドレス指定を使用できないようです。

masmから得られるエラーは、一部の行で「式に演算子がありません」であり、一部の行には「構造体フィールドが必要です」と表示されます。