問題タブ [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.
windows - WindowsでのPEファイル(exe)の最小ファイルサイズはいくつですか?そして、最小限のメモリ割り当て?
WindowsでのPEファイル(exe)の最小ファイルサイズはいくつですか?そして、最小メモリ割り当て?
次のコードをアセンブルしました(VS 10に付属のMASM(ml.exe)とlink.exeを使用)。kernel32.libとExitProcessを除外 できません。除外すると、プログラムがクラッシュします。
Sleepコマンドは、プログラムが終了する前にメモリ使用量を読み取ることができるようにするためにのみ含まれています。
ここで、次のことを測定します。.exeファイルのサイズは正確に2.5 KB(user32.libとMessageBoxAを含めると、サイズは3 KB->ブロックになりますか?)、アプリケーションの実行時に136 KBのRAMを使用します(Vista 32ビット)。
このような単純なプログラムでは、それだけのメモリではありませんか?exeファイルが非常に大きく、RAM要件がexeファイルよりもはるかに大きいのはなぜですか?
最小のメモリサイズはありますか?ファイルはどうですか?サイズが0.5KBのブロックに編成されているように見えますが、この最短のプログラムでは0.5KBではないでしょうか。
これについてはどこで読むことができますか(チェックアウトするhttp://msdn.microsoft.com/en-us/magazine/cc301805.aspxを除く)?
ありがとう(ここで私の最初の質問)
windows - 組み立ての問題
WindowsコマンドプロンプトでDEBUGを使用して5桁の小数を掛けようとしていますが、非常に遠いのではないかと心配しています。私のプログラムは 10 進数値 1303 になります。4320 になるはずです。10 進数は 15、12、4、2、3 です。
dos - dos MBR を実行できません
みんな.C ディスクから 0:0200H などのメモリに MBR を読み取り、それをデバッグします。 ' 私はそれに対処する方法がわかりません。どんな助けでも大歓迎です。ありがとう。
winapi - WriteFile 文字列のバイト長が原因でクラッシュが発生する
問題
WriteFileを機能させるために、あらゆる種類のバイト数を試してきました。問題は、ファイルに書き込んだ直後にクラッシュすることです。すべてのテキストはファイルにありますが、「プログラムがクラッシュしました。Microsoft に送信しますか??」エラーダイアログがポップアップします。
invoke WriteFile とその下のすべてをコメント アウトすると、プログラムは正常に実行され、クラッシュしません。ただし、WriteFile のコメントを外して、下のすべてのコードをコメントアウトしたままにすると、再び醜い頭が生まれます。コードは以下にあり、誰かが私が見逃したものを見ることができれば、それは大歓迎です:-)
私が試したバイト長。
23、24 (文字列の長さ + null)、25 (バイトを忘れた可能性があります) のバイト長を試しましたが、SIZEOF WriteText を使用しただけで、すべて失敗しました :-(.
コード
c# - MASMアセンブリ言語とILASMの関係(ある場合)は何ですか?
MASMアセンブリ言語とILASMの関係(ある場合)はどうですか。1対1の変換はありますか?私はQuantumGISをプログラムに取り込もうとしています。コンピューターにGISがあり、RedGate Reflectorがあり、Visual Studio 2008のオブジェクトブラウザーも、Quantumの.dllの1つ(動作についての強い手がかりがないものの1つ)を開くことができませんでした。MASMアセンブリエディターを使用して同じdllを「開いた」と、そもそも必ずしも理解できるとは思わなかったことが吐き出されました。同じ「コード」を、ILASMとImで相互作用できるものに変換するにはどうすればよいですか?結果的にCsharpで想定されますか?読んでくれてありがとう、そして以前の質問に対するすべての回答...Csharpでのプログラミングに比較的慣れていないImを覚えておいてください。
memory - 複数の値を同じメモリ アドレスに格納します。デリミタ?
私は Read- と WriteProcessMemory と、私が見つけた古いプラットフォーマー ゲームをいじっています。プレイヤーが新しいレベルに入るたびに、敵が作成され、それぞれのヘルス ポイント、座標などが設定されます。
(EAX は構造体のアドレスで、138 はヘルスへのオフセットです)
書き込む空きメモリがあるとすれば、それぞれの EAX の値を 1 つの同じ場所に格納する方法はありますか? ある種の区切り記号を使用するのが好きですか?
乾杯
winapi - WIN32 関数を使用して MASM で Hello World を出力する
コンテンツ
- はじめに
- コード
- 組み立てと実行
- その他
- 質問
1. はじめに
これはそれ自体は質問ではありません (一番下に質問があります) が、StackOverflow で実験するための HelloWorld アプリです。
最初に MASM でプログラミングを試みたとき、WIN32 API 呼び出しを使用する (C ライブラリにリンクしていない) 動作する HelloWorld アプリケーションを見つけようとしましたが、(MASM 構文で) 見つけることができませんでした。ある程度の経験を積んだので、組み立てを学びたいと思っている他の人のために書いてみました。
2.コード
3. 組み立てと実行
C:\MASM32 ディレクトリに MASM32 がインストールされていると仮定します。
MASM をインストールしていない場合は、 http://masm32.com/install.htmにアクセスし て指示に従ってください。
MASM32 が別のディレクトリにインストールされている場合は、それに応じて手順を変更してください。
デスクトップ ショートカットをクリックして MASM32 エディター (QEditor) を開くか、ショートカットがない場合は C:\MASM32\ に移動し、qeditor.exe をダブルクリックします。
コード セクションのコード (背景が灰色のテキストのみ) をコピーし、MASM32 エディター (QEditor) に貼り付けて保存します。
コードを保存したら、[プロジェクト] メニューをクリックし、[コンソールのアセンブルとリンク] を選択します ([アセンブルとリンク] ではありません(「その他」を参照)) 。
[スタート] に移動して [実行] をクリックし、cmd と入力して Enter キーを押すと、灰色のテキストが表示された黒いボックスが表示されます。
エクスプローラーを使用して、手順 3 でコードを保存した場所に移動します。ソース ファイル (手順 3) と同じ名前のファイルが存在するはずですが、exe ファイルです。エクスプローラ ウィンドウからコマンド ボックスに exe ファイルをドラッグ アンド ドロップします (手順 4 のブラック ボックス)。
黒いボックスを選択して Enter キーを押すと、「Hello World!」というテキストが表示されます。表示されるはずです。
4. その他
[プロジェクト] メニューの [アセンブルして実行] だけでなく、[コンソールのアセンブルして実行] をクリックする必要があるのはなぜですか?
[Console Assemble and Run] をクリックする必要があるのは、GUI とテキスト ベース コンソール (DOS) アプリケーションの 2 種類のアプリケーションがあるためです。Hello would アプリケーションはテキスト ベースのアプリケーションであるため、組み立てる際には、GUI ではなくコンソール ベースのアプリケーションと同じ設定にする必要があります。
詳細な説明については、このリンクの備考の 3 番目の段落を参照してください。
5. 質問
さて、質問ですが、このコードの問題、エラー、または一般的な問題を見た人はいますか、何か提案がありますか
assembly - Irvine32 と MASM
私の asm プログラムに Irvine32 inc/lib のサポートを追加する際に助けが必要です。inc/lib をフォルダーに追加し、include Irvine32.inc includeLib Irvine32.lib を追加しましたが、Irvine32.lib とリンクするとエラーが発生します。
ライブラリが機能するオールインワン パッケージをダウンロードできる場所はありますか。
ありがとう
assembly - 感染したコンパイラ、または誤動作?
私は非常に奇妙なことに遭遇しました。まず、これがコンピュータ ウイルスと関係があるかどうかわからないので、ここに投稿しました。もしそうなら、助けを求める場所に私を案内してもらえますか?
だから今:
私はここである種の奇妙な問題を抱えています.ウイルス対策とマルウェアバイトのフラグコード*の両方が、ウイルスとしてmasmとmasmの例でコンパイルされています。私はグーグルで調べて、この問題が以前に発生したことを発見したので、これをあまり真剣に受け止めず、最初は誤検知であると考えました.
しかし、この投稿の下部にあるコードをコンパイルして、他のいくつかのことをテストしました。そして、ollydbgを実行して(その間、comodoアンチウイルスは無視しました)、次のように見ました:
以下のコードはおそらくそのジャンプにコンパイルできなかったので、コードにステップインしていました。そしてしばらくして、奇妙なコードが ntdll.dll ライブラリの API を介して列挙され始めたことに気付きました。何が起こっていますか?これが本当にウイルスである場合、どこに助けを求めればよいでしょうか?
しかし、私はまだ確信が持てません。
テストに使用していたテストコード...
*: インクルード \masm32\include\masm32rt.inc
アップデート:
コードはディスク上ではなくメモリ内にあるため、おそらくこれを行うある種のライブラリです。
そして、呼び出し終了プロセスを削除しましたが、まだそこにあります
file-io - ASMのファイルからフロートを読み取る
私はTheBinaryAuditorのc++とasmの問題に取り組んできました。私はc++のものを問題なく通過しましたが、アセンブリは私に少し問題を与えています。Windows7でmasm32を使用しています。
最初のアセンブリの問題では、基本的に、テキストファイルに格納されている一連のfloat値の平均を1行に1つずつ計算するように求められます。これまでのところ、ファイルからデータを読み込んで、一連の文字として配列に格納することができました。
だから、私の質問は、配列からfloat値を抽出するには、各バイトを物理的に調べ、改行文字と'。'を検出してから、floatを作成する必要があるかどうかです。もっと簡単な方法はありますか?!
ありがとう