Hello everybody

First thanks for your help and the good forum. My question needs a little bit explanation first. I study computer science.I had a course in Computer Organization and design and we had a course about microprocessors with an assignment on 80C51 microprocessor.
actually i couldn't do it well. but I've become very interested to learn more about them and also Assembly language. I don't know which assembly language i need to learn that will be useful for work in the future and also where to start about microprocessors and programming CPU and to learn how i can have control on my pc with assembly.

Please help me with some information,actually I am not sure if this is the right forum to post this at all:)


Back in the beginning of time, when there were only a handful of microprocessors, they were much simpler, and updates were years apart, it was entirely possible to "know everything" and write quite tight code.

Nowadays, there are dozens of different processor models (and probably hundreds of variants). New ones appear on a monthly basis. Also, with advanced topics like pipelines and branch prediction, it's very hard to be sure you're always getting the best out of the processor.

I've very rarely had to write actual assembler, and even then it was only the bare minimum necessary to do something specialised in a wrapper which could be called from C.

Reading the ASM that your C compiler generates is quite a useful skill, especially come debug time.