Try reading:
1.
Compiler design in C[
^]
2.
The Dragon Book[
^]
as this will help you understand programming languages in general.
Read through
The Art of Computer Programming[
^] - it usually takes 4 to 5 readings.
Use the aquired knowledge to build an assembler.
This will give you a thorough understanding about what's going on behind the scenes, and you will cetainly gain a lot of practice :)
It usually takes about 10 years to become an expert:
Teach Yourself Programming in Ten Years[
^]
Good luck :)
Best regards
Espen Harlinn