( turdus | 2010. 11. 29., h – 12:37 )

Rosszul értelmezed. Az összehasonlítja magával rész egyszerű nem-nulla feltétel.
Bár ezt assemblyben nem így szokás, hanem az olvashatóbb nem-zero:

or %eax, %eax
jnz nemnulla
...
nemnulla:

Egyébként meg ez a kód mindenképp elvérzik.
222a: nem lett leellenőrizve, hogy a paraméter érvényes cím-e.
2232 és 223c: ha a paraméter által mutatott dword 0, a pointer 0 egyébként -1 lesz
2244: akár 0, akár -1, a pointer feloldása mindenképp bukta.
Kb ez a fenti kód C-ben:

if(*arg) ptr=-1; else ptr=0;
a=*ptr;