Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 778
  • Last Modified:

Recommendation for ***free*** online Assembly tutorials

Hi, I am an industrial strength  C++ programmer with over 12 yrs experience. One of the things that has, up until now, eluded me is a good grounding in assembly. Most of the time this is not a problem but sometimes analyzing disassembly is the only way to solve a complex problem. To this end, I am keen to acquire at least some basic rudimentary assembly skills that I might be able to then build on. I would be grateful if someone could (a) point me in the direction of some free (but good) online tutorials (b) maybe suggest a good book for beginners (c) suggest a good but free (see how often that word crops up!) assembler (other than MASM) and (d) maybe provide some general words of advice (or even encouragement)!

Ta v much in advance.

-Rx.
0
evilrix
Asked:
evilrix
  • 2
1 Solution
 
Infinity08Commented:
Wow, no-one responded yet ?

Maybe that's because it's a difficult question to answer, since there are so many versions of assembly ... I'll try anyway ;)


>> (a) point me in the direction of some free (but good) online tutorials

I've never used tutorials to learn assembly ... I basically just taught myself (for example by dis-assembling an executable to figure out what it does and how it does it).

So, I can't point you to a tutorial that I know is good. But I found this one that looks pretty good :

        http://drpaulcarter.com/pcasm/

It includes a basic explanation of how a PC works internally (which is necessary to have a good understanding of assembly), and it seems to cover the basics of assembly pretty well.


>> (b) maybe suggest a good book for beginners

See the link above ...


>> (c) suggest a good but free (see how often that word crops up!) assembler (other than MASM)

NASM is pretty good (and free) :

        http://nasm.sourceforge.net/

(it's also the one used in the tutorial I referred to earlier btw ;) )

A good debugger (one that shows you the assembly, and can step through it) is also a very good tool to have ...


>> (d) maybe provide some general words of advice (or even encouragement)!

Assembly is not very hard (especially if you already know a language like C) - it just takes some getting used to, and a more low-level way of thinking, since you'll be explicitly manipulating the stack, the CPU registers, the memory, etc.
It's the most powerful way of creating optimized code for a system, but obviously it takes more effort to do so.

Knowing assembly will also give you some new insights that you can put to good use when programming in other languages, so it's definitely recommended if you're serious about programming.

Advice ? I'd say, just try a lot out for yourself. Try reverse engineering an executable. Try modifying the behavior of an application in ways not expected by its creator. Try some fun assembly "challenges" and "games", like the bomb ones that have been posted here recently.
0
 
evilrixSenior Software Engineer (Avast)Author Commented:
Excellent, as always. Thanks.
0
 
evilrixSenior Software Engineer (Avast)Author Commented:
Thanks 8.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now