.data
fmt db "页尺寸:%d",0
db ""
lpsystem SYSTEM_INFO <?>
szbuf db 200 dup(0)
.const
szCaption db '系统信息',0
.code
start:
invoke GetSystemInfo,addr lpsystem
;mov ax,lpsystem.dwPageSize
invoke wsprintf,addr szbuf,addr fmt,lpsystem.dwPageSize
invoke MessageBox, NULL, addr szbuf, addr szCaption, MB_OK
信息返回到结构体中;如果要显示的字段是LPTSTR类型,直接显示;lpsystem.dwPageSize,此字段是DWORD类型,先用wsprintf格式化,再显示;
如果显示三个DWORD 字段,
.const
szCaption db '系统信息',0
fmt db '页尺寸:%d',0
db '处理器数目:%d',0
db '处理器类型:%d',0
.code
start:
invoke GetSystemInfo,addr lpsystem
invoke wsprintf,addr szbuf,addr fmt,lpsystem.dwPageSize,lpsystem.dwNumberOfProcessors,lpsystem.dwProcessorType
invoke MessageBox, NULL, addr szbuf, addr szCaption, MB_OK
这样写不会显示三个字段,只显示了第一个字段;
这样就可以,
.const
szCaption db '系统信息',0
fmt db '页尺寸:%d;处理器数目:%d;处理器类型:%d',0
1
先显示此结构体的5个字段,
.386
.model flat, stdcall
option casemap :none
include windows.inc
include user32.inc
include kernel32.inc
include gdi32.inc
includelib user32.lib
includelib kernel32.lib
includelib gdi32.lib
.data
lpsystem SYSTEM_INFO <?>
szbuf db 500 dup(0)
.const
szCaption db '系统信息',0
fmt db '页尺寸:%d;应用程序可以访问的最低内存地址:%d;应用程序可以访问的最高内存地址:%d;处理器数目:%d;处理器类型:%d',0
.code
start:
invoke GetSystemInfo,addr lpsystem
;mov ax,lpsystem.dwPageSize
invoke wsprintf,addr szbuf,addr fmt,lpsystem.dwPageSize,\
lpsystem.lpMinimumApplicationAddress,\
lpsystem.lpMaximumApplicationAddress,lpsystem.dwNumberOfProcessors,\
lpsystem.dwProcessorType
invoke MessageBox, NULL, addr szbuf, addr szCaption, MB_OK
invoke ExitProcess,NULL
end start
LPVOID lpMinimumApplicationAddress;
LPVOID lpMaximumApplicationAddress;
这两字段是LPVOID类型,不知道显示的有没有问题;
有时间再继续看此结构体的其余字段;