The best way to learn assembler IMHO is to disassemble compiled code, and at first use it in inline assembler, which allows you to write stuff around it in a HLL. It is a nice intermediate step before going full asm.
I learned it that way in Turbo Pascal, but Delphi and e.g. the Free FreePascal still support this today. (easier than e.g. gcc inline asm)