Learning assembly takes a while, and it is a bit hard to jump straight into a modern processor and start coding… So, if you do not have any experience with the bare metal, it is good to start with a pretty simple assembly. And the simplest assembly I can recall is called RedCode
Despite of being a fun game, it is a nice way to start with low level programming. The machine does not have registers or stack, just memory and some flags. The number of instructions is small (around 16, depending on the version you try) and only a couple of memory addressing modes are allowed. There are some kind of threading also.
Take a look to the wiki page (specially the part about the use of genetic algorithms to generate code )
And here is the simplest RedCode program you can write… The IMP
MOV 0, 1
Moves content of current memory cell (by default addressing is relative to the instruction pointer), into the next memory cell. When the IP is increased the same code is executed again and again…
Let me know when you are done with RedCode and we can move into the next level!