急求一断汇编代码??????????、~~~~~~~~~~~~~~~~~~~~

logeya 2004-12-05 01:40:46
检测操作系统类型,如果是WIN2000,就运行,不是的话就不运行~~~~
用汇编写出~~~~~~~~~~~~`
...全文
70 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
xqlez 2004-12-05
  • 打赏
  • 举报
回复
参照ms的例子写,没测试过,不知对不对
xqlez 2004-12-05
  • 打赏
  • 举报
回复
.386
.model flat, stdcall
option casemap:none ; case sensitive
include windows.inc
include kernel32.inc
include user32.inc
includelib user32.lib
includelib kernel32.lib

nl equ 0DH,0AH

.data
win2000 db "Microsoft Windows 2000 ", nl, 0
nowin2000 db "nowin2000 ", nl, 0
hStdOut dd 0
len dd 0
dwTmp dd 0
osvi OSVERSIONINFO <>
.code
start:
invoke GetStdHandle, STD_OUTPUT_HANDLE
mov hStdOut,eax

mov osvi.dwOSVersionInfoSize, 156
invoke GetVersionEx, addr osvi
cmp eax, 0
jne win32_nt
mov osvi.dwOSVersionInfoSize, 148
invoke GetVersionEx, addr osvi
test eax, eax
jz return_false
win32_nt:
cmp osvi.dwPlatformId, VER_PLATFORM_WIN32_NT
jne notwin2000
cmp osvi.dwMajorVersion, 5
jne notwin2000
cmp osvi.dwMinorVersion, 0
jne notwin2000
invoke lstrlen, addr win2000
mov len, eax
invoke WriteFile, hStdOut, addr win2000, len, addr dwTmp, NULL
mov eax, 0
jmp return
notwin2000:
invoke lstrlen, addr nowin2000
mov len, eax
invoke WriteFile, hStdOut, addr nowin2000, len, addr dwTmp, NULL
mov eax, 1
jmp return
return_false:
mov eax, FALSE
call ExitProcess
return:
call ExitProcess

end start

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧