80x86の引き算に付いて質問です。
よくC言語のコードをアセンブラに出力すると、
sub eax, ecx
neg eax
という感じでsubの後にnegというコードが現れるのを見かけるのですが、
このnegは、いったい何をやってるのでしょうか?
subだけでもよさそうな気がしますが、
C言語の引き算はsubだけでは完結しないんでしょうか?

negは補数の正負を逆点する、とかいう説明を読んだことがありますが、
いまいち意味がわかりませんでした。
どういう場合にnegがないと困るのか教えてください。