I am learning x86 assembly language for linux. I want to practice what I've learned, but am having a hard time thinking of good project ideas of what to write. Any ideas of programs a beginner could benefit from creating would be great.

Posted on 2010-09-13 17:41:48 by g0at
Hello and welcome to the community!

A good start for practice ( beyond the hello world examples ) might be implementing your own string or memory routines.  See what you come up with for strlen/strcat/strcpy or memset/memcpy without looking at any compiler assembly listing output.  Then compare your version to a debug assembly listing of the libc version for the respective C routine.  Once you're comfortable that you understand what your doing try optimizing the routines to make them faster/smaller by reading the Intel CPU docs.  When you think you've got a speedy little routine now compare it to GCC's optimized assembly listing output of those same libc routines and learn from it ;)

For a complete program now take your own routines and build a simple make program that reads in a file listing, parsing each line and executing commands. That will keep you busy for a while  :D

There are a zillion things members of this community can have you do.  Just remember we're here to help you learn, not do your coding for you.  So always have code snippets ready if you are having problems and we will guide you in the right direction...
Posted on 2010-09-13 20:25:18 by p1ranha