- UID
- 8671
注册时间2006-2-27
阅读权限40
最后登录1970-1-1
独步武林
TA的每日心情 | 开心 2018-5-6 16:27 |
---|
签到天数: 7 天 [LV.3]偶尔看看II
|
楼主 |
发表于 2009-10-13 22:49:01
|
显示全部楼层
原帖由 tianxj 于 2009-10-13 18:26 发表
mov szName,eax
这个是多余的哈
嗯,KeymakeMe代码是有待严谨和优化。
其实那个szName完全可以省的,直接使用寄存器应该就可,这样也节省程序占用磁盘空间。
.const
.data
szHomePage db "https://www.chinapyg.com/",0
szEmail db "mailto:[email protected]",0
szErrMess db "对不起,注册失败!",0
szCrMess db "恭喜您,注册成功!",0
szCode db 20 dup(0)
.code
mov [ebp-4],ebx
mov ebx,eax
invoke lstrlen,eax
mov esi,eax
mov edi,ebx
mov ebx,1
mov eax,ebx
mov ecx,26
begin:
mov eax,ebx
cdq
imul eax,3
shl eax,3
sub eax,ebx
shl eax,1
dec esi
jns rName
add eax,20h
jmp fName
rName:
xor edx,edx
mov dl,byte ptr [edi+ebx-1]
add eax,edx
fName:
cdq
idiv ecx
add dl,41h
mov byte ptr [szCode+ebx-1],dl
inc ebx
cmp bl,12
jbe begin
mov byte ptr [szCode+3],2dh
mov byte ptr [szCode+8],2dh
lea eax,szCode
invoke lstrlen,eax
mov ecx,eax
mov edi,[ebp-4]
lea esi,szCode
cld
repe cmpsb
jnz szErr
lea eax,szCrMess
jmp fi
szErr:
lea eax,szErrMess
fi:
nop;;
最后,还可以把那个szCode也省的,兄弟们就跟着帖吧。
[ 本帖最后由 野猫III 于 2009-10-13 22:56 编辑 ] |
|