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
包含睡眠命令只是为了能够在程序结束之前读取内存使用情况。
现在我测量以下内容:.exe 文件的大小正好为 2.5 KB(如果我包含 user32.lib 和 MessageBoxA,它的大小会变成 3 KB --> 块?)并且应用程序在运行时使用 136 KB RAM(Vista 32 位)。
对于这样一个简单的程序来说,这不是多少内存吗?为什么exe文件这么大,内存需求比exe文件大很多?
有一些最小的内存大小吗?文件呢?看起来它是以 0.5 KB 大小的块组织的,但对于这个可能最短的程序来说,它不是 0.5 KB 吗?
我在哪里可以阅读到这方面的信息(除了http://msdn.microsoft.com/en-us/magazine/cc301805.aspx,我将查看它)?
谢谢(我在这里的第一个问题)