小提示:尽量少动esp~~~ ebp 之类寄存器
;数据段添加如下:
szHomePage db "https://www.chinapyg.com/",0
szEmail db "mailto:[email protected]",0
szErrMessdb "输入的用户名有误!",0
szFormat db "%1u",0
szRegCodedb 20 dup (0)
;代码段添加如下:
mov edi,eax ;让edi保存用户名,因为eax时刻要用到
invoke lstrlen,edi ;获取用户名长度,返回到eax
mov ecx,eax ;用户名长度放ecx
mov ebx,0 ;ebx作为计数器
mov edx,0 ;edx作为累加器
;这样写循环简洁很多
@@:
movzx eax,byte ptr ;逐位取用户名ASCII
add edx,eax ;下面是累加过程
inc ebx
dec ecx
jne @B
;算法开始
imul edx,5CAh
add edx,20h
imul edx,5CAh
;格式化字符串
invoke wsprintf,addr szRegCode,addr szFormat,edx
;eax指向到szRegCode注册码指针
lea eax,szRegCode 老大太有才了,有注释,不错啊,还能看懂一点点
页:
1
[2]