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

winapi - アセンブリでの RegisterClassEx

.data セクションで WNDCLASS 構造を使用せずに RegisterClassEx Windows API を手動で呼び出そうとしていますpush。命令のみを使用してこの構造を作成する必要があります。

誰かが私を助けてくれませんか?

どうもありがとう

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

winapi - エラー LNK2001: 未解決の外部シンボル _MessageBox

masm32 ライブラリではなく、masm のみを使用して helloworld プログラムを作成しようとしています。コード スニペットは次のとおりです。

私はmasmを使ってこれを組み立てることができます:

ただし、リンクできません:

リンク中にライブラリを含めていますが、未解決のシンボルがまだ表示されている理由がわかりませんか?

アップデート:

更新 2: 最終的な作業コード!

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

assembly - MASM32を試してみると、コンピューターが壊れますか?

私のコンピューターで少し遊んでも大丈夫ですか?実験的なコードを書いているときにひどい間違いを犯すという予感があります。私の恐れは根拠がありませんか?


編集

迅速な対応と私の懸念の明確化に感謝します。あまり気にする必要はないと思います。危険な実験をしたい場合は、仮想マシン環境を用意します。再度、感謝します!

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

assembly - INVOKE MASM レジスタを自動的に保存しますか?

masm で Invoke ディレクティブを使用すると、CPU レジスタを自動的に保存できますか?

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

c++ - __int16とint(32)がC ++で異なるasmを生成するのはなぜですか?

私は最近masmアセンブリを学び始めました、ivは見ているだけで私のプログラムの多くを分解しています。__int16(word)を使用すると、その値が最初にeaxにコピーされ、次に変数自体にコピーされることに気付きましたが、int(dword / 32)を使用すると、変数に直接コピーされます。

__int16のサイズが16...eaxの半分のサイズであることに気付きました。これが最初にeaxに入れられ、次にaxだけがxに入れられる理由ですか?

また、どちらが最速ですか?

おすすめの良いmasmサイトはありますか?

ご入力いただきありがとうございます

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

assembly - 未解決の外部シンボル _WinMainCRTStartup

Masm32 で簡単な「Hello world」アプリケーションを組み立てようとしています。うまく組み立てられますが、リンクしようとすると、リンカーは次のように言います

リンク: エラー LNK2001: 未解決の外部シンボル _WinMainCRTStartup prog1.exe: 致命的なエラー LNK1120: 1 つの未解決の外部シンボル

これは、プログラムのソース コードです。

いくつかのフォーラムで、これはエンコード タイプが原因であることがわかりました。しかし、それは私の問題には関係ないようです

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

assembly - アセンブリ プログラムのヘルプ

画面をクリアして名前を出力し、次に改行して名前を再度出力するプログラムがあります。しかし、実行しても何も表示されません。プログラムが正常に終了しただけです。デバッグを使用してWindowsコマンドプロンプトでこれを行っています。

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

winapi - WriteFile 文字列のバイト長が原因でクラッシュが発生する

問題

WriteFileを機能させるために、あらゆる種類のバイト数を試してきました。問題は、ファイルに書き込んだ直後にクラッシュすることです。すべてのテキストはファイルにありますが、「プログラムがクラッシュしました。Microsoft に送信しますか??」エラーダイアログがポップアップします。

invoke WriteFile とその下のすべてをコメント アウトすると、プログラムは正常に実行され、クラッシュしません。ただし、WriteFile のコメントを外して、下のすべてのコードをコメントアウトしたままにすると、再び醜い頭が生まれます。コードは以下にあり、誰かが私が見逃したものを見ることができれば、それは大歓迎です:-)

私が試したバイト長。

23、24 (文字列の長さ + null)、25 (バイトを忘れた可能性があります) のバイト長を試しましたが、SIZEOF WriteText を使用しただけで、すべて失敗しました :-(.

コード

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

webbrowser-control - ブラウザー エンジンを MASM アプリに統合するにはどうすればよいですか?

RadASM IDE を使用して MASM でアプリを開発しています。このIDEにはIEコントロール(WebBrowser)が付属していますが、表示したいコンテンツがそのブラウザ(XHTML + CSS)で壊れています。また、外部のIE dllの依存関係を削除したいので、頭に浮かぶ唯一の解決策ですFirefox や Chrome などの他のブラウザのエンジンを使用しています。ネットで検索したところ、要件を満たす DevKit がいくつか見つかりましたが、それらは VS2005+ で動作するように設計されているか、C++ でコーディングされているだけです。

ブラウザー エンジン (IE ではない) を MASM アプリに統合する方法を知っている人は、非常に高く評価されます。

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

winapi - WIN32 関数を使用して MASM で Hello World を出力する

コンテンツ

  1. はじめに
  2. コード
  3. 組み立てと実行
  4. その他
  5. 質問

1. はじめに

これはそれ自体は質問ではありません (一番下に質問があります) が、StackOverflow で実験するための HelloWorld アプリです。

最初に MASM でプログラミングを試みたとき、WIN32 API 呼び出しを使用する (C ライブラリにリンクしていない) 動作する HelloWorld アプリケーションを見つけようとしましたが、(MASM 構文で) 見つけることができませんでした。ある程度の経験を積んだので、組み立てを学びたいと思っている他の人のために書いてみました。

2.コード

3. 組み立てと実行

C:\MASM32 ディレクトリに MASM32 がインストールされていると仮定します。

  • MASM をインストールしていない場合は、 http://masm32.com/install.htmにアクセスし て指示に従ってください。

  • MASM32 が別のディレクトリにインストールされている場合は、それに応じて手順を変更してください。

    1. デスクトップ ショートカットをクリックして MASM32 エディター (QEditor) を開くか、ショートカットがない場合は C:\MASM32\ に移動し、qeditor.exe をダブルクリックします。

    2. コード セクションのコード (背景が灰色のテキストのみ) をコピーし、MASM32 エディター (QEditor) に貼り付けて保存します。

    3. コードを保存したら、[プロジェクト] メニューをクリックし、[コンソールのアセンブルとリンク] を選択します ([アセンブルとリンク] ではありません(「その他」を参照)) 。

    4. [スタート] に移動して [実行] をクリックし、cmd と入力して Enter キーを押すと、灰色のテキストが表示された黒いボックスが表示されます。

    5. エクスプローラーを使用して、手順 3 でコードを保存した場所に移動します。ソース ファイル (手順 3) と同じ名前のファイルが存在するはずですが、exe ファイルです。エクスプローラ ウィンドウからコマンド ボックスに exe ファイルをドラッグ アンド ドロップします (手順 4 のブラック ボックス)。

    6. 黒いボックスを選択して Enter キーを押すと、「Hello World!」というテキストが表示されます。表示されるはずです。

4. その他

[プロジェクト] メニューの [アセンブルして実行] だけでなく、[コンソールのアセンブルして実行] をクリックする必要があるのはなぜですか?

[Console Assemble and Run] をクリックする必要があるのは、GUI とテキスト ベース コンソール (DOS) アプリケーションの 2 種類のアプリケーションがあるためです。Hello would アプリケーションはテキスト ベースのアプリケーションであるため、組み立てる際には、GUI ではなくコンソール ベースのアプリケーションと同じ設定にする必要があります。

詳細な説明については、このリンクの備考の 3 番目の段落を参照してください。

5. 質問

さて、質問ですが、このコードの問題、エラー、または一般的な問題を見た人はいますか、何か提案がありますか