.386
.model flat,stdcall
option casemap:none
include windows.inc
include user32.inc
includelib user32.lib
include kernel32.inc
includelib kernel32.lib
.data
dwID dd ?
fname db MAX_PATH dup (?)
.const
szCaption db '获取信息',0
szReturn db '计数到达1000',0
.code
start:
invoke GetCurrentProcessId
mov dwID, eax
invoke MessageBox,NULL,addr dwID,addr szCaption,MB_OK
invoke GetModuleFileName, NULL,offset fname,MAX_PATH
invoke MessageBox,NULL,addr fname,addr szCaption,MB_OK
invoke ExitProcess,NULL
end start
构建,运行如下;
GetCurrentProcessId定义如下; DWORD GetCurrentProcessId(VOID);
返回值是进程ID;返回值一般在eax中;调用之后再执行 mov dwID, eax ;然后显示 dwID;显示有问题;
第二个消息框内容对了;
GetModuleFileName定义如下;
DWORD GetModuleFileName( HMODULE hModule, // handle to module LPTSTR lpFilename, // file name of module DWORD nSize // size of buffer);
ExitProcess定义如下;
VOID ExitProcess(
UINT uExitCode // exit code for all threads
);
下回再看;