Well, if you want lots of options and stuff - but very VERY high learning curve, then the old-time programmer/hacker's love SoftIce is for you. It's probably like 10 years old, but still the most powerful out there.

That program is so powerful, it can actually run in the background and jump in as windows crashes and give you the opportunity to "fix" whatever went wrong so that windows doesn't crash. It has a very interesting and unique interface that is hard to learn though.

... Holy $#!+ dude! It's friggin huge! Well, I found a SoftICE v4.05, and it's smaller, but I also found a SoftICE Suite v4.0 and it come's in 11 parts! How am I supposed to put it together?Are these the latest versions and what's in the suite that's not in the other one?

Well, I got downloaded version 4.05, but I need a flippin' registration code to install it. I checked the internet, but the only code I found for v4.05 didn't work. I'm thinking of risking getting a cracked version...

IDA Pro by Datarescue as Nexus mentioned is probably the best disassembler in the world.There are some places where you can download the full version.It has support for many processors and file formats,PE,MZ,ELF..Its usually around 18-20 Megabytes.Its the only tool you need for disassembling..

Win32 Disassembler by URSoftware is also pretty neat, disassembles 16/32-Bit code,has a nice real time debugger for 32-bit applications.Displays resources,ordinals,exporte/imported API's and modules.

Sourcer for MS-DOS is not bad.SoftICE is primarily used as a debugger.