win32汇编获取系统信息
.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
szCaptiondb'系统信息',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
invokeMessageBox, NULL, addr szbuf, addr szCaption, MB_OK
invokeExitProcess,NULL
endstart
LPVOID lpMinimumApplicationAddress;
LPVOID lpMaximumApplicationAddress;
这两字段是LPVOID类型,不知道显示的有没有问题;
有时间再继续看此结构体的其余字段;
原文地址:https://blog.csdn.net/bcbobo21cn/article/details/136139574
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!