|
回复 #71 NicTense 的帖子
有,那就是masm32,不过NT内核以4K页面为内存分配单位(DOS是16字节),小于4K的也一样占4K,所以5K和8K对内存的占用几乎没有区别:)- ;console模式的hello
- .386
- .model flat,stdcall
- option casemap:none
- include \masm32\include\windows.inc
- include \masm32\include\masm32.inc
- include \masm32\include\user32.inc
- include \masm32\include\kernel32.inc
- includelib \masm32\lib\masm32.lib
- includelib \masm32\lib\user32.lib
- includelib \masm32\lib\kernel32.lib
- .data
- szMsg db "您好!",13,10,0
- .code
- start:
- invoke StdOut,ADDR szMsg
- invoke ExitProcess,0
- end start
复制代码- ;对话框的hello
- .386
- .model flat,stdcall
- option casemap:none
- include \masm32\include\windows.inc
- include \masm32\include\kernel32.inc
- include \masm32\include\user32.inc
- includelib \masm32\lib\kernel32.lib
- includelib \masm32\lib\user32.lib
- .data
- szCaption db "Hello World",0
- szText db "您好!",0
- .code
- start:
- invoke MessageBox,NULL,ADDR szText,ADDR szCaption,MB_OK
- invoke ExitProcess,0
- end start
复制代码 两个例子编译后都是2.5KB,可以运行于win95~2008R2_64(包括win7)的任何一个windows或PE,而且只需要KRNEL32.DLL和USER32.DLL支持(CMDPE不行)。
***附文件信息资源文件模块,酱紫就不会像大多数masm32例程一样“没名没姓”的——
- #include "\masm32\include\resource.h"
- //1000 ICON "Main.ico"
- 1 VERSIONINFO
- FILEVERSION 1,0,0,0
- // PRODUCTVERSION 1,0,0,0
- FILEFLAGSMASK 63
- FILEFLAGS 0
- FILEOS 4
- FILETYPE 1
- FILESUBTYPE 0
- BEGIN
- BLOCK "StringFileInfo"
- BEGIN
- BLOCK "080404B0"
- BEGIN
- VALUE "Comments","Free Ware"
- VALUE "CompanyName","个人"
- VALUE "FileDescription","HELLO例程"
- VALUE "FileVersion","1.0.0.0"
- VALUE "InternalName","HELLOALL.EXE"
- VALUE "LegalCopyright","netwinxp版权所有"
- // VALUE "LegalTrademarks",""
- VALUE "OriginalFilename","HELLOCMD.EXE"
- // VALUE "PrivateBuild","Beta版"
- VALUE "ProductName","软件学习例程"
- VALUE "ProductVersion","1.0.0.0"
- // VALUE "SpecialBuild",""
- END
- END
- BLOCK "VarFileInfo"
- BEGIN
- VALUE "Translation",0x804,0x4B0
- END
- END
- //Comments=备注
- //CompanyName=公司
- //FileDescription=描述
- //FileVersion=文件版本
- //InternalName=内部名称
- //LegalCopyright=版权
- //LegalTrademarks=注册商标
- //OriginalFilename=源文件名
- //PrivateBuild=内部版本说明
- //ProductName=产品名称
- //ProductVersion=产品版本
- //SpecialBuild=特殊说明
- //Translation=语言
复制代码
[ 本帖最后由 netwinxp 于 2010-3-26 21:10 编辑 ] |
|