test edi, edi 这类的源操作数和目的操作一致的时候, 一般有两类作用: 一是看看该寄存器是否为 0; 另外就是看看是正数还是负数:
...
test edi, edi
jz l_zero ; 是 0, 转去 l_zero 处
l_notzero: ; 不是 0
....
下面的是从反汇编软件里出来的吧
mov edi, [eax]
test edi, edi ; 检查 edi
jnle +$1a ; 不小于/等于转走, 即 大于 0 时转走
test edi, edt ; test edi, edi ? 如果是的话, 应该没有必要了, 可以直接继续判断的
jnl +$07 ; 不小于转走, 由上面的条件下来的话, 实际上就是 等于 0 时转走
... ; 这里就是 edi 小于 00 时