Assembler als Sprache ist trivial. Die Schwierigkeit ist hier wohl eher das technische Wissen drumherum, welches vorausgesetzt wird und eine gehörige Portion Überblick beim Lesen solcher Programme.
Alle komplexen Algorithmen, die Du mit den Hochsprachen lösen kannst, kannst Du auch mit Assembler lösen (letztendlich übersetzen sie in die gleiche Zielsprache) nur wird der Leidensdruck irgendwann unermesslich gross
Den MASM gibt es kostenlos zusammen mit dem Visual Studio Express.
Hier kannst Du ihn einzeln herunterladen - er läuft aber auch dann nur mit installiertem VS. Das Visual Studio ist dann eigentlich selbsterklärend, wenn man schon Programmiererfahrung hat.