Also: Assembler (oder korrekt: Assembly) ist das, was ein Debugger/Disassembler normalerweise ausspuckt, wenn man damit ein Programm öffnet. D.h um mit dem Output der "Crackprogramme" etwas anfangen zu können, sind Grundkenntnisse in Asm Pflicht.
Um sich aber ein Bild über die Programmlogik aus den einzelnen Assemblybefehlen machen zu können, sind Programmierkenntnisse nicht verkehrt (denn es läuft in etwa so ab: Programmlogik (über Programmierer)->Sourcecode->(über Compiler)->Assemblycode->(über Assembler)->Maschinencode=Executable ->(über Disassembler)Assemblycode->(über Brain >1.0) Programmlogik.
D.h bevor Du Dich ans "cracken" machst, solltest Du Dir Grundkenntnisse in einer der üblicheren Programmiersprachen (C,Pascal,C++, notfalls gehen auch NET Sprachen/Java) aneignen sowie Grundlagen der Hardware/Assembly.