You can check out xorpd x86 Assembly video course. (I wrote it). The course itself is paid, but the exercises are open sourced, on github. If you have some programming experience I think you should be able to work just with the exercises and understand everything.
Note that the code is for the Windows platform, and is written using the Fasm assembler. The course and the exercises do not contain any high level constructs, however you could use Fasm to create very complicated macros, if you ever wish to do so.