嗯,我开头也没有注意看。
因为 MOV DL,BYTE PTR DS:[ECX+1] 是单字节,而 MOV ECX,EDX 是四字节,所以要进行零扩展。
也可以改成以下几种方式:
1、在MOV DL,BYTE PTR DS:[ECX+1]的前面加一条XOR EDX,EDX
2、将MOV DL,BYTE PTR DS:[ECX+1]改成MOVZX EDX,BYTE PTR DS:[ECX+1]
以上两种都可以省去AND ECX,0FF
3、
MOV EDX,DWORD PTR SS:[EBP-4]
MOVZX ECX,BYTE PTR DS:[EDX+1]
这样还可以省多一条MOV ECX,EDX
4、将
AND ECX, 0FF
IMUL ECX,ECX,24
ADD ECX,Ekd5.004B2C50
写成一个自定义函数,直接CALL就是了,这样以后在其他地方修改也更方便一些。
|