Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am learning assembly language for x86 architecture. But, i am unable to find any practice problems so that i can test my skills. Can you suggest me some practice problems or some small assembly language project to improve my skills.??

thanks in advance

share|improve this question

closed as not constructive by Otávio Décio, Ryathal, Bill the Lizard, gnat, Caleb Jul 5 '12 at 19:31

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

Darn, got closed while typing... I was suggesting that you re-implement a subset of the libc and UNIX tools, like: strcpy, strcat, conversion functions like a strtoi / itostr, strtol / ltostr, a mini printf, a mini cat... Should be enough to get you started, and the the rest of the libc is at your disposal for more project ideas. – haylem Jul 6 '12 at 6:35

You may concentrate on optimization of existing sample codes. There are some good resources to look for:

The most interesting and a little complex tasks might be writing a compatible driver to devices that are handy to your needs.

share|improve this answer

When I was studying assembly at university we were doing small applications all the time. We had tasks like input, output, different sums and sorts (for using loops), 'drawing' some images, like circles, with points, etc.

There also were large projects. The most interesting one is writing a driver. You could take a small device, like mouse, and try to implement a driver for it. If you also add some tests along to find out, for example, where is the problem in case smth is wrong, that would be great experience. Writing a driver properly requires good knowledge of the language, some research on the device and ports, and also pieces of code for testing.

This is project you wouldn't call small, but if you can implement this all than be sure you do know the assembly language!

share|improve this answer

One of the first things I did when learning/playing around with it was a blitting routine, I then added transparency and eventually shadows by specifying colours that would be transparent or a shadow.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.