問題タブ [masm32]

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

assembly - masm32: シンプルな配列操作

私は非常に単純な問題を抱えています:

masm32 の 1 次元配列にバイトを格納し (昨日始めたばかりで、以前は c# を使用していました)、単純な数学で変更したいのですが、ネットで役立つものは見つかりませんでした。

これは、.data セクションで配列を宣言する方法です。基本的に、C# 構文でやりたいことは次のとおりです。

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

linker - masm32 2 つの .obj ファイルのリンク (SIMPLE)

masm32 の学習を始めたばかりで、.obj ファイルについて少し混乱しています。以前は C# を使用していたので、コンパイラがリンクしてくれました。現在は qeditor を使用していますが、複数の .asm ファイルをアセンブルするオプションが見つかりません。私は非常に基本的なプログラムを構築しています:

それぞれを個別にコンパイルすると、3 つの .obj ファイルが生成されますが、それらは何ですか? 次の行で makeit.bat を調べました。

だから私はそれをに変えることができると思った

私のプログラム全体をコンパイルするのですが、私は間違っていました:(、誰かが.batを正常に作成するのを手伝ってくれますか(後で.batが必要になる少しのIDEを作成したいので)、3.objをコンパイルしますファイルを 1 つの .exe にしますか?

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

assembly - bt 組み立て説明書

bt組み立て説明書について質問です。文脈を提供するために本の一部を抜粋しました。最後の例を参照してくださいbt Testme, bx。なぜコピーするのTestMe+8ですか?コピーするべきではありませんTestMe+65か?

助けてくれてどうもありがとう!

6.6.4.2 ビット テスト命令: BT、BTS、BTR、および BTC

80386 以降のプロセッサでは、bt 命令 (ビット テスト) を使用して 1 ビットをテストできます。その 2 番目のオペランドは、最初のオペランドへのビット インデックスを指定します。Bt は、アドレス指定されたビットをキャリー フラグにコピーします。たとえば、

ax のビット 12 をキャリー フラグにコピーします。

bt/bts/btr/btc 命令は、16 ビットまたは 32 ビットのオペランドのみを扱います。これは命令の制限ではありません。結局のところ、al レジスタのビット 3 をテストしたい場合は、ax レジスタのビット 3 を簡単にテストできます。一方、インデックスがレジスタ オペランドのサイズより大きい場合、結果は未定義です。

最初のオペランドがメモリ ロケーションの場合、bt 命令は、インデックスの値に関係なく、メモリ内の指定されたオフセットでビットをテストします。たとえば、bx に 65 が含まれている場合

TestMe+8 の位置のビット 1 をキャリー フラグにコピーします。繰り返しますが、オペランドのサイズは重要ではありません。すべての意図と目的のために、メモリオペランドはバイトであり、適切なインデックスを使用して、そのバイトの後の任意のビットをテストできます。実際のビット bt テストは、ビット位置 index mod 8 およびメモリ オフセット実効アドレス + index/8 にあります。

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

assembly - ウィンドウ764ビットのmasm32の「エラーA2006:未定義のシンボル」?

この例を実行すると、エラーが発生します。PROC1 PROC FARを削除した後、別のエラー「シンボルタイプの競合」が発生します。/ coffの場合:「開始アドレスに必要な先頭の下線:START」。

Microsoft(R)MacroAssemblerバージョン6.14.8444Copyright(C)MicrosoftCorp1981-1997。全著作権所有。

アセンブル:D:\ Linux \ test1.asm D:\ Linux \ test1.asm(28):エラーA2006:未定義のシンボル:START
D:\ Linux \ test1.asm(16):エラーA2004:シンボルタイプの競合
D:\ Linux \ test1.asm(28):エラーA2148:式のシンボルタイプが無効です:STAR

補遺:

startを削除した後、16行目にエラーが残りました。なぜこのエラーが発生するのMOV AX, DATAですか?

Microsoft(R)MacroAssemblerバージョン6.14.8444Copyright(C)MicrosoftCorp1981-1997。全著作権所有。

アセンブル:D:\ Linux \ test1.asm D:\ Linux \ test1.asm(16):エラーA2004:シンボルタイプの競合

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

assembly - アセンブリ言語で直接変数をプッシュするのではなく、レジスタを介して変数をプッシュするのはなぜですか?

フォーラムで asm のキー ロガー プログラムを見つけました。キーロガーを自分で作成するかもしれないと思いました。そのプログラムで実際に何が起こっているのかを確認するためにコードを読んでいたとき、いくつかの興味深いことに出くわしました。

1.プログラムが変数をスタックにプッシュすることはほとんどありませんでした。変数の値をレジスタに移動してから、レジスタをプッシュしました。例えば。

2.プログラムは、stosd を使用して配列をクリアしました。例えば:

プログラムは、上記の例のように値を割り当てるためにプッシュ/ポップを使用しました。

上記の規則の利点は何ですか?

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

masm - このコードは何をしますか?

私はこのキーロガーにオンラインで出くわし、次のコードが実際に何をするのか疑問に思いました。連続して2つのlodsdコマンドがあり、それは私を混乱させます。また、orコマンドの目的は何ですか?完全なコードは次の場所にあります:http: //www.rohitab.com/discuss/topic/21205-asm-keylogger-in-4k-d/

コードの抜粋(295行目以降)は次のとおりです。

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

dll - .DLL (Windows) から関数 (アドレス) を取得して、Masm32 から呼び出す方法

プログラムをMasm32に(そして.exeに)変換するPascalのような言語用のコンパイラを書いています。私の目標は、コーダーに Windows ライブラリ (.DLL)をインクルードさせることです。そのため、コンパイラの警告を正しく表示するには、最初に関数名とジャンプ アドレスを読み取る必要があります。(関数が定義されていません...)

これを行う方法はありますか?各 Win32 関数には、 call 0xXXXXXXXXで呼び出すことができるアドレスであるマジック ナンバー (0xXXXXXXXX) があると聞きました。

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

assembly - スタックのようなデータ型をアセンブリに実装するにはどうすればよいですか?

アセンブリにカスタム データ構造を実装する必要があります。できれば、動的である必要があります。各要素が次の要素を指す C++/Java のリンク リストのようなもの。各要素のサイズは異なる場合があることに注意してください。

これどうやってするの?

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

c++ - ASM obj ファイルを C++ プログラムと統合するにはどうすればよいですか?

ASM と C++ コードを Visual Studio 2010 に統合したいと考えています。基本的には、ASM で作成された特定のルーチンを C++ コードで使用できるようにしたいと考えています。

だから私は知りたい:

  1. そもそも ASM obj ファイルを VS2010 に追加するにはどうすればよいですか?
  2. コードの C++ 部分から ASM コードの関数を呼び出すにはどうすればよいですか?
  3. 値を計算し、その値を税簿に格納する関数を (ASM で) 作成するとします。それが計算と呼ばれるとしましょう。次のようなものを使用して、C++ で戻り値を受け取ることができますint val=compute();か?
0 投票する
3 に答える
305 参照

sorting - コード最適化のヒント:

次の ASM ルーチンを使用して配列をバブル ソートしています。コードの非効率性を知りたい:

基本的に、バブル ソート アルゴリズムの場合と同様に、2 つのループがあります。外側のループの ecx の値は 10 で、内側のループの値は [ecx-1] です。このルーチンを試してみたところ、正常にコンパイルおよび実行されましたが、効率的かどうかはわかりません。