WindowsでのPEファイル(exe)の最小ファイルサイズはいくつですか?そして、最小メモリ割り当て?
次のコードをアセンブルしました(VS 10に付属のMASM(ml.exe)とlink.exeを使用)。kernel32.libとExitProcessを除外 できません。除外すると、プログラムがクラッシュします。
; Assmebly options
.386
.MODEL FLAT, STDCALL
option casemap:none
; Include Libs
includelib kernel32.lib
; Imported symbols
ExitProcess PROTO :Dword
Sleep PROTO :Dword
; Code
.CODE
start:
invoke Sleep, 10000
invoke ExitProcess, 0
END start
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を除く)?
ありがとう(ここで私の最初の質問)